714 Stimmen

Git: Was ist die beste Methode, um einen bestehenden Ordner zu "klonen"?

Ich habe eine Arbeitskopie des Projekts ohne Metadaten der Versionskontrolle. Jetzt möchte ich das Äquivalent von Git-Clone in diesen Ordner machen und meine lokalen Änderungen behalten.

git-clone erlaubt es mir nicht, in einen bestehenden Ordner zu klonen. Was ist hier die beste Vorgehensweise?

4 Stimmen

Eine bessere Diskussion ist aquí .

0 Stimmen

Bitte um Rat: Wäre es nicht einfacher, in diesem Fall: a) die Struktur in einen temporären Ordner zu kopieren. b) zu tun git init auf den gewünschten leeren Ordner. c) Kopieren Sie den Inhalt in diesen Ordner, und machen Sie git add . ?

1 Stimmen

@MEM Diese Antwort gefällt mir besser, aber beides geht... stackoverflow.com/a/5377989/11236

821voto

amicitas Punkte 11923

Dies kann durch Klonen in ein neues Verzeichnis und anschließendes Verschieben der .git Verzeichnis in Ihr bestehendes Verzeichnis.

Wenn Ihr vorhandenes Verzeichnis den Namen "code" trägt.

git clone https://myrepo.com/git.git temp
mv temp/.git code/.git
rm -rf temp

Dies kann auch ohne einen Checkout während des Klon-Befehls geschehen; weitere Informationen finden Sie unter aquí .

423voto

Andreas Krey Punkte 5896

Nicht klonen, sondern holen. Im Repo:

git init
git remote add origin $url_of_clone_source
git fetch origin
git checkout -b master --track origin/master # origin/master is clone's default

Dann können Sie den Baum zurücksetzen, um die gewünschte Übergabe zu erhalten:

git reset origin/master # or whatever commit you think is proper...

und du bist wie geklont.

Die interessante Frage hier (und diejenige ohne Antwort): Wie kann man herausfinden, auf welchem Commit der nackte Baum basiert, also an welche Position man zurücksetzen muss.

143voto

alexwenzel Punkte 2155

Das Folgende habe ich getan, um den Master-Zweig in einem bestehenden Verzeichnis auszuchecken:

git init
git remote add origin [my-repo]
git fetch
git checkout origin/master -ft

53voto

user1055643 Punkte 4451

Die Verwendung eines temporären Verzeichnisses ist in Ordnung, aber wenn Sie diesen Schritt vermeiden wollen, funktioniert dies auch. Vom Wurzelverzeichnis Ihres Arbeitsverzeichnisses aus:

$ rm -fr .git
$ git init
$ git remote add origin your-git-url
$ git fetch
$ git reset --mixed origin/master

44voto

jhwist Punkte 14273

Ich würde git clone in ein neues Verzeichnis und kopieren Sie den Inhalt des bestehenden Verzeichnisses in den neuen Klon.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X