Durch Ausführen des Befehls git clone [email protected]:whatever
wird ein Verzeichnis in meinem aktuellen Ordner mit dem Namen erstellt whatever
und der Inhalt des Git-Repositorys in diesem Ordner abgelegt:
/httpdocs/whatever/public
Mein Problem ist, dass ich den Inhalt des Git-Repositorys in mein aktuelles Verzeichnis klonen muss, damit er am richtigen Speicherort für den Webserver angezeigt wird:
/httpdocs/public
Ich weiß, wie man die Dateien verschiebt, nachdem ich das Repository geklont habe, aber dies scheint Git zu beschädigen, und ich möchte in der Lage sein, nur durch Aufrufen zu aktualisieren git pull
. Wie kann ich das machen?
git
repository
git-clone
David Smith
quelle
quelle
Antworten:
Option A:
Ergo, zur
right here
Verwendung:Option B:
Verschieben Sie auch den
.git
Ordner. Beachten Sie, dass der.git
Ordner in den meisten Explorer für grafische Dateien ausgeblendet ist. Stellen Sie daher sicher, dass ausgeblendete Dateien angezeigt werden.Die erste Zeile erfasst alle normalen Dateien, die zweite Zeile erfasst Punktdateien. Es ist auch möglich, dies in einer Zeile zu tun, indem dotglob (dh
shopt -s dotglob
) aktiviert wird. Dies ist jedoch wahrscheinlich eine schlechte Lösung, wenn Sie die Frage stellen, auf die diese Antwort antwortet.Besser noch:
Bewahren Sie Ihre Arbeitskopie an einem anderen Ort auf und erstellen Sie einen symbolischen Link. So was:
Für Sie wäre dies ungefähr so:
Was leicht geändert werden kann, um zu testen, ob Sie es wollten, dh:
ohne Dateien zu verschieben. Hinzugefügt,
-fn
falls jemand diese Zeilen kopiert (-f
ist erzwungen,-n
vermeiden Sie einige häufig unerwünschte Interaktionen mit bereits vorhandenen und nicht vorhandenen Links).Wenn Sie nur möchten, dass es funktioniert, verwenden Sie Option A. Wenn jemand anderes sich ansehen möchte, was Sie getan haben, verwenden Sie Option C.
quelle
ln -s path/to/.git path/to/working/directory
Das Beispiel, nach dem viele Leute diese Frage stellen, ist das folgende. Wenn Sie sich in dem Verzeichnis befinden, in das der Inhalt des Git-Repositorys gespeichert werden soll, führen Sie Folgendes aus:
Das "." Am Ende wird der aktuelle Ordner als Checkout-Ordner angegeben.
quelle
ls -a
zeigt alle Dateien an, auch versteckte.Gehen Sie in den Ordner. Wenn der Ordner leer ist, dann:
sonst
quelle
switch -t
in der Dokumentation der Git-Kaufabwicklung nicht eindeutig angezeigt wird .Grundlegendes Klonen von Git Repository
Sie klonen ein Repository mit
Wenn Sie beispielsweise die Drupal Open Framework Git-Bibliothek der Stanford University mit dem Namen open_framework klonen möchten, können Sie dies folgendermaßen tun:
Dadurch wird ein Verzeichnis mit dem Namen open_framework (an Ihrem aktuellen lokalen Dateisystemspeicherort) erstellt, ein darin enthaltenes .git-Verzeichnis initialisiert, alle Daten für dieses Repository abgerufen und eine Arbeitskopie der neuesten Version ausgecheckt. Wenn Sie in das neu erstellte Verzeichnis open_framework wechseln, werden dort die Projektdateien angezeigt, die bearbeitet oder verwendet werden können.
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:
Dieser Befehl macht dasselbe wie der vorherige, aber das Zielverzeichnis heißt mynewtheme.
Git verfügt über verschiedene Übertragungsprotokolle, die Sie verwenden können. Im vorherigen Beispiel wird das Protokoll git: // verwendet. Möglicherweise wird jedoch auch http (s): // oder user @ server: /path.git angezeigt, das das SSH-Übertragungsprotokoll verwendet.
quelle
Um das Git-Repository in einen bestimmten Ordner zu klonen, können Sie
-C <path>
Parameter verwenden, zwhatever
Verwenden Sie die folgende Syntax, um den Inhalt des Repositorys in das aktuelle Verzeichnis zu klonen, obwohl weiterhin ein Ordner darüber erstellt wird:Beachten Sie, dass das Klonen in ein vorhandenes Verzeichnis nur zulässig ist, wenn das Verzeichnis leer ist .
Da Sie in einen Ordner klonen, auf den öffentlich zugegriffen werden kann, sollten Sie Ihr Git-Repository von Ihrem Arbeitsbaum trennen, indem Sie
--separate-git-dir=<git dir>
einen.git
Ordner in Ihrer Webserverkonfiguration verwenden oder ausschließen (z.htaccess
. B. in einer Datei).quelle
So klonen Sie auf Present Working Directory :
So klonen Sie in ein anderes Verzeichnis :
Ich hoffe es hilft :)
quelle
./
am Anfang des Pfades zum OrdnerVerschieben Sie das
.git
Verzeichnis auch, wenn Sie die Dateien an den gewünschten Ort verschieben ? Abhängig von Ihrem Betriebssystem und Ihrer Konfiguration kann dieses Verzeichnis ausgeblendet sein.Es enthält das Repo und die unterstützenden Dateien, während die Projektdateien in Ihrem
/public
Verzeichnis nur die Versionen im aktuellen Check-out-Commit sind (standardmäßig Hauptzweig).quelle
Klon:
Klonen Sie den "spezifischen Zweig":
quelle
Wenn Sie in den aktuellen Ordner klonen möchten, sollten Sie Folgendes versuchen:
quelle
Verwendungszweck
Klonen Sie das Repository im <Repository> auf den lokalen Computer. Das ursprüngliche Repository kann sich im lokalen Dateisystem oder auf einem Remotecomputer befinden, auf den über HTTP oder SSH zugegriffen werden kann.
Klonen Sie das Repository unter <Repository> in den Ordner <Verzeichnis> auf dem lokalen Computer.
Quelle: Einrichten eines Repositorys
quelle
Stellen Sie sicher, dass Sie das .git-Repository entfernen, wenn Sie versuchen, das Objekt im aktuellen Verzeichnis auszuchecken.
rm -rf .git
danngit clone https://github.com/symfony/symfony-sandbox.git
quelle
Hier ist, wie ich es machen würde, aber ich habe einen Alias gemacht, um es für mich zu machen.
Es gibt wahrscheinlich eine elegantere Art, dies zu tun, aber ich fand, dass dies für mich selbst am einfachsten ist.
Hier ist der Alias, den ich erstellt habe, um die Dinge zu beschleunigen. Ich habe es für zsh gemacht, aber es sollte gut für Bash oder andere Muscheln wie Fisch, Xyzsh, Fizsh und so weiter funktionieren.
Bearbeiten
~/.zshrc
,/.bashrc
etc. mit Ihrem bevorzugten Editor (Mine ist Leafpad, so dass ich schreiben würde$ leafpad ~/.zshrc
).Meine persönliche Präferenz ist es jedoch, ein zsh-Plugin zu erstellen, um alle meine Aliase zu verfolgen. Sie können ein persönliches Plugin für oh-my-zsh erstellen, indem Sie die folgenden Befehle ausführen:
Fügen Sie anschließend diese Zeilen zu Ihrer neu erstellten leeren Datei alises.plugin hinzu:
(Ersetzen Sie von hier aus Ihren Namen durch meinen.)
Damit die Aliase funktionieren, müssen sie (zusammen mit zsh) eingekauft werden (oder wie auch immer es heißt). Fügen Sie dazu in Ihrem benutzerdefinierten Plugin-Dokument Folgendes hinzu:
Speichern Sie Ihr oh-my-zsh-Plugin und führen Sie es aus
allsource
. Wenn das nicht zu funktionieren scheint, führen Sie es einfach aussource $ZSH/oh-my-zsh.sh; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh
. Dadurch wird die Plugin-Quelle geladen, die Sieallsource
von nun an verwenden können.Ich bin gerade dabei, ein Git-Repository mit all meinen Aliasnamen zu erstellen. Bitte zögern Sie nicht, sie hier zu überprüfen: Evs Punktedateien . Bitte zögern Sie nicht, sie zu gabeln und zu verbessern, um sie Ihren Bedürfnissen anzupassen.
quelle
Wenn Sie
ssh
für verwendengit cloning
, können Sie den folgenden Befehl verwenden.git -C path clone [email protected]:path_to_repo.git
Beispiel:
git -C /home/ubuntu/ clone [email protected]:kennethreitz/requests.git
Würde das Git-Repository fürrequests
auf Ihren/home/ubuntu/
Pfad ziehen.quelle
Aus irgendeinem Grund fällt diese Syntax nicht auf:
git clone repo-url [folder]
Hier ist der Ordner ein optionaler Pfad zum lokalen Ordner (der ein lokales Repository sein wird).
Git
clone
codiert auchpull
vom Remote-Repository in das lokale Repository. In der Tat ist es wahr:quelle
Obwohl alle oben genannten Antworten gut sind, möchte ich eine neue Methode vorschlagen, anstatt die symbolische Verknüpfungsmethode im öffentlichen HTML-Verzeichnis als BEST in der akzeptierten Antwort zu verwenden. Sie müssen Zugriff auf die virtuellen Hostkonfigurationen Ihres Servers haben.
Es geht darum, den virtuellen Host Ihres Webservers zu konfigurieren, der direkt auf das Repository-Verzeichnis verweist. In Apache können Sie Folgendes tun:
Hier ist ein Beispiel für eine virtuelle Hostdatei:
quelle
Sie können den folgenden git-Befehl verwenden, um mit einem benutzerdefinierten Verzeichnisnamen zu klonen
Hinweis: Sie müssen Ihr Kundenverzeichnis nicht erstellen, da es automatisch erstellt wird
quelle
quelle
Zu dieser Zeile aus dem Originalbeitrag:
Ich bin dazu in der Lage und sehe bisher keine Probleme mit meinen Operationen zum Hinzufügen, Festschreiben, Drücken und Ziehen.
Dieser Ansatz ist oben angegeben, jedoch nicht in Schritte unterteilt. Hier sind die Schritte, die für mich funktionieren:
Der vorhandene Ordner, in den Sie die Dateien gerade kopiert haben, kann jetzt mit git interagieren.
quelle