Wenn ich den Befehl git clone [email protected]:whatever
ausführe, wird in meinem aktuellen Ordner ein Verzeichnis mit dem Namen "wie auch immer" erstellt, und der Inhalt des Git-Repositorys wird in diesem Ordner abgelegt:
/httpdocs/whatever/public
Mein Problem ist, dass ich die Inhalte des Git-Repositorys in mein aktuelles Verzeichnis klonen muss, damit sie am richtigen Ort für den Webserver erscheinen:
/httpdocs/public
Ich weiß, wie ich die Dateien verschieben kann, nachdem ich das Repository geklont habe, aber das scheint Git zu brechen, und ich möchte in der Lage sein, einfach durch den Aufruf von git pull
zu aktualisieren. Wie kann ich das tun?
Option A:
git clone [email protected]:whatever folder-name
Ergo, für "gleich hier" verwenden:
git clone [email protected]:whatever .
Option B:
Verschieben Sie auch den Ordner .git
. Beachten Sie, dass der Ordner .git
in den meisten grafischen Dateiexplorern versteckt ist, stellen Sie also sicher, dass versteckte Dateien angezeigt werden.
mv /where/it/is/right/now/* /where/I/want/it/
mv /where/it/is/right/now/.* /where/I/want/it/
Die erste Zeile erfasst alle normalen Dateien, die zweite Zeile erfasst die Punktdateien. Es ist auch möglich, dies in einer Zeile zu tun, indem man dotglob aktiviert (d.h. shopt -s dotglob
), aber das ist wahrscheinlich eine schlechte Lösung, wenn Sie die Frage stellen, die diese Antwort beantwortet.
Besser noch:
Legen Sie Ihre Arbeitskopie an einem anderen Ort ab und erstellen Sie einen symbolischen Link. Etwa so:
ln -s /where/it/is/right/now /the/path/I/want/to/use
In Ihrem Fall wäre das etwa so:
ln -sfn /opt/projectA/prod/public /httpdocs/public
Was leicht in test geändert werden könnte, wenn Sie es wünschen, d.h.:
ln -sfn /opt/projectA/test/public /httpdocs/public
ohne Dateien zu verschieben. Hinzugefügt wurde -fn
für den Fall, dass jemand diese Zeilen kopiert (-f
ist force, -n
vermeidet einige oft unerwünschte Interaktionen mit bereits und nicht existierenden Links).
Wenn Sie nur wollen, dass es funktioniert, verwenden Sie Option A, wenn jemand anderes sich ansehen will, was Sie getan haben, verwenden Sie Option C.
Ich glaube, viele Fragesteller wollen folgendes Beispiel. Wenn Sie sich in dem Verzeichnis befinden, in das Sie den Inhalt des Git-Repositorys auslagern wollen, führen Sie aus:
git clone [email protected]:whatever .
Das "." am Ende gibt den aktuellen Ordner als Checkout-Ordner an.
Wenn Sie die Dateien dorthin verschieben, wo Sie sie haben wollen, verschieben Sie dann auch das .git
-Verzeichnis? Abhängig von Ihrem Betriebssystem und Ihrer Konfiguration kann dieses Verzeichnis versteckt sein.
Es enthält das Projektarchiv und die unterstützenden Dateien, während die Projektdateien in Ihrem /public
-Verzeichnis nur die Versionen der aktuell ausgecheckten Übergabe (standardmäßig der Master-Zweig) sind.