3067 Stimmen

Wie erstelle ich ein Git-Repository in einen bestimmten Ordner?

Der Befehl git clone git@github.com:whatever erstellt ein Verzeichnis namens whatever, das ein Git-Repository enthält:

./
    whatever/
        .git

Ich möchte, dass der Inhalt des Git-Repositorys in mein aktuelles Verzeichnis ./ geklont wird:

./
    .git

7 Stimmen

Auf Windows können Sie Dateien aus dem Ordner verschieben, in dem Sie das Repo klonen möchten [falls vorhanden], sodass es leer ist, wenn Sie git clone ausführen. Nach dem Klonen verschieben Sie Ihre Dateien zurück [Strg-Z] und voilà! Wenn der aktuelle Ordner leer ist, verwenden Sie einfach: git clone giturl .

4327voto

Can Berk Güder Punkte 103655

Option A:

git clone git@github.com:whatever Ordnername

Ergo, für genau hier verwenden Sie:

git clone git@github.com:whatever .

Option B:

Verschieben Sie auch den .git-Ordner. Beachten Sie, dass der .git-Ordner in den meisten grafischen Dateiexplorern verborgen ist, also stellen Sie sicher, dass Sie versteckte Dateien anzeigen.

mv /wo/es/jetzt/ist/* /wo/ich/es/haben/will/
mv /wo/es/jetzt/ist/.* /wo/ich/es/haben/will/

Die erste Zeile greift alle normalen Dateien ab, die zweite Zeile greift Punkt-Dateien ab. Es ist auch möglich, es in einer Zeile zu tun, indem Sie dotglob aktivieren (d. h. shopt -s dotglob), aber das ist wahrscheinlich keine gute Lösung, wenn Sie die Frage stellen, die diese Antwort beantwortet.

Noch besser:

Behalten Sie Ihre Arbeitskopie an einem anderen Ort und erstellen Sie einen symbolischen Link. So:

ln -s /wo/es/jetzt/ist /der/pfad/den/ich/nutzen/möchte

Für Ihren Fall wäre das etwas wie:

ln -sfn /opt/projektA/prod/public /httpdocs/public

Was einfach geändert werden kann, um es zu testen, wenn Sie möchten, d. h.:

ln -sfn /opt/projektA/test/public /httpdocs/public

ohne Dateien zu verschieben. Hinzugefügt -fn für den Fall, dass jemand diese Zeilen kopiert (-f ist erzwingen, -n vermeiden einige oft unerwünschte Interaktionen mit bereits bestehenden und nicht existierenden Links).

Wenn Sie einfach möchten, dass es funktioniert, verwenden Sie Option A, wenn jemand anderes sehen soll, was Sie getan haben, verwenden Sie Option C.

16 Stimmen

Ich hatte nicht an Ihre Option "Even Better" gedacht, und ich mag sie, obwohl ich nicht sicher bin warum. Was sind die Vorteile davon?

9 Stimmen

Es bietet wahrscheinlich im Moment keinen Vorteil, aber es könnte Ihnen viel Ärger ersparen, wenn Sie sich entscheiden, Dinge irgendwann zu verschieben.

0 Stimmen

Ich versuche die symbolische Link-Methode, bin mir aber nicht sicher, ob das mit Django funktioniert?

265voto

csomakk Punkte 5111

Gehen Sie in den Ordner.. Wenn der Ordner leer ist, dann:

git clone git@github.com:whatever .

andernfalls

git init
git remote add origin PATH/TO/REPO
git fetch
git checkout -t origin/master

10 Stimmen

Eigentlich war dies die nützlichste Antwort für mich, als ich nur das bereits erstellte Projekt in das neu erstellte Repository übertragen musste. Kudos!

16 Stimmen

Nur eine Antwort, die angibt, wie man in einen nicht leeren Ordner auscheckt, danke.

3 Stimmen

Das ist wirklich hilfreich, da der switch -t in der Dokumentation von git checkout nicht deutlich angezeigt wird.

120voto

Craig Gjerdingen Punkte 1694

Grundlegendes Klonen eines Git-Repositorys

Sie klonen ein Repository mit

git clone [url]

Zum Beispiel, wenn Sie das Git-Bibliothek der Stanford University Drupal Open Framework mit dem Namen open_framework klonen möchten, können Sie dies wie folgt tun:

$ git clone git://github.com/SU-SWS/open_framework.git

Dadurch wird ein Verzeichnis mit dem Namen open_framework (an Ihrem aktuellen lokalen Dateisystemstandort) erstellt, ein .git-Verzeichnis darin initialisiert, alle Daten für dieses Repository heruntergeladen und eine Arbeitskopie der neuesten Version ausgecheckt. Wenn Sie in das neu erstellte Verzeichnis open_framework wechseln, sehen Sie die Projektdateien darin, bereit zum Bearbeiten oder Verwenden.

Klonen eines Repositorys in einen bestimmten lokalen Ordner

Wenn Sie das Repository in ein Verzeichnis mit einem anderen Namen als open_framework klonen möchten, können Sie dies als nächste Befehlszeilenoption angeben:

$ git clone git:github.com/SU-SWS/open_framework.git mynewtheme

Dieser Befehl tut dasselbe wie der vorherige, aber das Zielverzeichnis heißt mynewtheme.

Git bietet verschiedene Übertragungsprotokolle, die Sie verwenden können. Das vorherige Beispiel verwendet das git://-Protokoll, aber Sie können auch http(s):// oder user@server:/path.git sehen, das das SSH-Übertragungsprotokoll verwendet.

0 Stimmen

Dies wird automatisch einen Ordner in Ihrem aktuellen Ordner erstellen und die Dateien dort platzieren. Damit müssen Sie sich keine Sorgen machen, dass ein anderer Ordner überschrieben wird.

96voto

Manoj Rana Punkte 2092

Sie können den folgenden Git-Befehl verwenden, um mit einem benutzerdefinierten Verzeichnisnamen zu klonen

git clone  

Hinweis: Sie müssen Ihr benutzerdefiniertes Verzeichnis nicht erstellen, da es automatisch erstellt wird

71voto

kenorb Punkte 134883

Um ein Git-Repository in einen bestimmten Ordner zu klonen, können Sie das -C -Parameter verwenden, z.B.

git -C /httpdocs clone git@github.com:whatever

Obwohl es immer noch einen whatever-Ordner darüber erstellen wird, um den Inhalt des Repositorys in das aktuelle Verzeichnis zu klonen, verwenden Sie die folgende Syntax:

cd /httpdocs
git clone git@github.com:whatever .

Beachten Sie, dass das Klonen in ein vorhandenes Verzeichnis nur erlaubt ist, wenn das Verzeichnis leer ist. nur, wenn das Verzeichnis leer ist.

Da Sie in einen öffentlich zugänglichen Ordner klonen, sollten Sie Ihr Git-Repository von Ihrem Arbeitsverzeichnis trennen, indem Sie --separate-git-dir= verwenden oder den .git-Ordner in Ihrer Webserver-Konfiguration ausschließen (z.B. in der .htaccess-Datei).

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