Durch Ausführen des Befehls git clone [email protected]:whatever
wird ein Verzeichnis in meinem aktuellen Ordner mit dem Namen whatever erstellt und der Inhalt des Git-Repository in diesen Ordner abgelegt:
/httpdocs/whatever/public
Mein Problem ist, dass ich den Inhalt des Git-Repository in mein aktuelles Verzeichnis klonen muss, damit er am richtigen Speicherort für den Webserver angezeigt wird:
/httpdocs/public
Ich weiß, wie ich die Dateien verschieben kann, nachdem ich das Repository geklont habe, aber dies scheint Git zu beschädigen, und ich möchte in der Lage sein, nur durch Aufrufen von git pull
zu aktualisieren. Wie kann ich das machen?
Option A:
git clone [email protected]:whatever folder-name
Option B:
verschieben Sie auch den .git-Ordner.
Besser noch:
Bewahren Sie Ihre Arbeitskopie an einem anderen Ort auf und erstellen Sie einen symbolischen Link.
Ich denke, dass viele Leute, die diese Frage stellen, danach suchen. Wenn Sie in das Verzeichnis sind, in das der Inhalt des git-Repositorys übertragen werden soll, führen Sie Folgendes aus:
git clone [email protected]:whatever .
Das "." am Ende wird der aktuelle Ordner als Checkout-Ordner angegeben.
Gehen Sie in den Ordner .. Wenn der Ordner leer ist, dann:
git clone [email protected]:whatever .
else
git init
git remote add Origin PATH/TO/REPO
git fetch
git checkout -t Origin/master
Sie klonen ein Repository mit
git clone [url]
Wenn Sie beispielsweise die Drupal Open Framework Git-Bibliothek der Stanford University 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 namens open_framework (an Ihrem aktuellen lokalen Dateisystempfad) erstellt, ein .git-Verzeichnis darin initialisiert, alle Daten für dieses Repository heruntergefahren und eine Arbeitskopie der neuesten Version ausgecheckt. Wenn Sie in das neu erstellte Verzeichnis open_framework gehen, werden die Projektdateien dort angezeigt, die zur Bearbeitung bereit sind oder verwendet werden.
Wenn Sie das Repository in ein Verzeichnis klonen möchten, das nicht open_framework lautet, können Sie dies als nächste Befehlszeilenoption angeben:
$ git clone git:github.com/SU-SWS/open_framework.git mynewtheme
Dieser Befehl hat dieselbe Funktion wie der vorherige Befehl, aber das Zielverzeichnis heißt mynewtheme.
Git hat verschiedene Übertragungsprotokolle, die Sie verwenden können. Im vorherigen Beispiel wird das Protokoll git: // verwendet. Möglicherweise sehen Sie jedoch auch http (s): // oder user @ server: /path.git, das das SSH-Übertragungsprotokoll verwendet.
Verschieben Sie beim Verschieben der Dateien an den gewünschten Ort auch das Verzeichnis .git
? Je nach Betriebssystem und Konfiguration ist dieses Verzeichnis möglicherweise ausgeblendet.
Es enthält das Repo und die unterstützenden Dateien, während die Projektdateien, die sich in Ihrem /public
-Verzeichnis befinden, nur die Versionen im derzeit auscheckfähigen Commit sind (Standardzweig standardmäßig).
Klon:
git clone [email protected]:jittre/name.git
Klonen Sie den "spezifischen Zweig":
git clone -b [branch-name] [email protected]:jittre/name.git
So klonen Sie auf Present Working Directory:
git clone https://github.com/link.git
So klonen Sie nach Anderes Verzeichnis:
git clone https://github.com/link.git ./Folder1/Folder2
Ich hoffe es hilft :)
Wenn Sie in den aktuellen Ordner klonen möchten, sollten Sie Folgendes versuchen:
git clone https://github.com/example/example.git ./
Stellen Sie sicher, dass Sie das .git-Repository entfernen, wenn Sie versuchen, das aktuelle Verzeichnis auszulesen.
rm -rf .git
dann git clone https://github.com/symfony/symfony-sandbox.git
Um ein Git-Repository in einen bestimmten Ordner zu kopieren, können Sie den -C <path>
-Parameter verwenden, z.
git -C /httpdocs clone [email protected]:whatever
Obwohl es immer noch einen whatever
-Ordner darüber erstellt, verwenden Sie die folgende Syntax, um den Inhalt des Repositorys in das aktuelle Verzeichnis zu kopieren.
git [email protected]:whatever .
Beachten Sie, dass das Klonen in ein vorhandenes Verzeichnis only erlaubt ist, wenn das Verzeichnis empty ist.
Da Sie in öffentlich zugänglichen Ordnern klonen, sollten Sie Ihr Git-Repository mit --separate-git-dir=<git dir>
von Ihrem Arbeitsbaum trennen oder den .git
-Ordner in Ihrer Webserverkonfiguration ausschließen (z. B. in .htaccess
-Datei).
Verwendungszweck
git clone <repository>
Klonen Sie das Repository im <Repository> auf den lokalen Computer. Das ursprüngliche Repository kann sich im lokalen Dateisystem oder auf einem Remote-Computer befinden, auf den über HTTP oder SSH zugegriffen werden kann.
git clone <repo> <directory>
Klonen Sie das Repository unter <Repository> in den Ordner <Verzeichnis> auf dem lokalen Computer.
Quelle: Ein Repository einrichten
So würde ich es machen, aber ich habe einen Pseudonym gemacht, um es für mich zu tun.
$ cd ~Downloads/git; git clone https:git.foo/poo.git
Es gibt wahrscheinlich einen eleganteren Weg, dies zu tun, jedoch fand ich es für mich am einfachsten.
Hier ist der Alias, den ich geschaffen habe, um die Dinge zu beschleunigen. Ich habe es für zsh gemacht, aber es sollte für bash oder jede andere Shell wie fish, xyzsh, fizsh usw. gut funktionieren.
Bearbeiten Sie ~/.zshrc
, /.bashrc
usw. mit Ihrem bevorzugten Editor (mein ist Leafpad, also würde ich $ leafpad ~/.zshrc
schreiben).
Meine persönliche Präferenz ist jedoch die Erstellung eines zsh-Plugins, um alle meine Aliasnamen zu verfolgen. Sie können ein persönliches Plugin für oh-my-zsh erstellen, indem Sie die folgenden Befehle ausführen:
$ cd ~/.oh-my-zsh/
$ cd plugins/
$ mkdir your-aliases-folder-name; cd your-aliases-folder-name
# In my case '~/.oh-my-zsh/plugins/ev-aliases/ev-aliases'
$ leafpad your-zsh-aliases.plugin.zsh
# Again, in my case 'ev-aliases.plugin.zsh'
Fügen Sie anschließend der neu erstellten leeren Datei alises.plugin diese Zeilen hinzu:
# Git aliases
alias gc="cd ~/Downloads/git; git clone "
(Ersetzen Sie von hier aus Ihren Namen durch meinen.)
Um die Aliase zum Laufen zu bringen, müssen sie (zusammen mit zsh) (oder wie auch immer sie genannt werden) eingezogen werden. Fügen Sie dazu in Ihrem benutzerdefinierten Plugin-Dokument Folgendes hinzu:
## Ev's Aliases
#### Remember to re-source zsh after making any changes with these commands:
#### These commands should also work, assuming ev-aliases have already been sourced before:
allsource="source $ZSH/oh-my-zsh.sh ; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh; clear"
sourceall="source $ZSH/oh-my-zsh.sh ; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh"
####
####################################
# git aliases
alias gc="cd ~/Downloads/git; git clone "
# alias gc="git clone "
# alias gc="cd /your/git/folder/or/whatever; git clone "
####################################
Speichern Sie Ihr oh-my-zsh-Plugin und führen Sie allsource
aus. Wenn dies nicht funktioniert, führen Sie einfach source $ZSH/oh-my-zsh.sh; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh
aus. Dadurch wird die Plugin-Quelle geladen, sodass Sie ab jetzt allsource
verwenden können.
Ich bin dabei, ein Git-Repository mit all meinen Aliasnamen zu erstellen. Fühlen Sie sich frei, sie hier anzusehen: Ev's dot-files . Fühlen Sie sich frei, um sie nach Ihren Bedürfnissen zu formen.
Wenn Sie ssh
für git cloning
verwenden, 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ür requests
in Ihren /home/ubuntu/
-Pfad ziehen.
Aus irgendeinem Grund zeichnet sich diese Syntax nicht aus:
git clone repo-url [folder]
Hier ist Ordner ein optionaler Pfad zum lokalen Ordner (der ein lokales Repository sein wird).
Git clone
wird auch pull
-Code aus dem entfernten Repository in das lokale Repository übernehmen. Tatsächlich ist es wahr:
git clone repo-url = git init + git remote add Origin repo-url + git pull
For Windows user
1> Open command Prompt.
2> Change the directory to destination folder (Where you want to store your project in local machine.)
3> Now go to project setting online(From where you want to clone)
4> Click on clone, and copy the clone command.
5> Now enter the same on cmd .
It will start cloning saving on the selected folder you given .
Obwohl alle oben genannten Antworten gut sind, würde ich gerne eine neue Methode vorschlagen, anstatt die symbolische Linkmethode im öffentlichen HTML-Verzeichnis zu verwenden, wie es BEST in der akzeptierten Antwort vorgeschlagen wird. 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 es wie folgt machen:
DocumentRoot/var/www/html/website/your-git-repo
Hier ist ein Beispiel für eine virtuelle Host-Datei:
<VirtualHost *:443>
ServerName example.com
DocumentRoot /path/to/your-git-repo
...
...
...
...
</VirtualHost>