it-swarm.com.de

Wie klonen Sie ein Git-Repository in einen bestimmten Ordner?

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?

1937
David Smith

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.

2655
Can Berk Güder

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.

548
J Wynia

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
193
csomakk

Grundlegendes Git-Repository-Klonen

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.

Klonen eines Repository in einen bestimmten lokalen Ordner

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.

79

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).

13
Paul

Klon:

git clone [email protected]:jittre/name.git

Klonen Sie den "spezifischen Zweig":

git clone -b [branch-name] [email protected]:jittre/name.git
13
Selvamani

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 :)

11
Sarat Chandra

Wenn Sie in den aktuellen Ordner klonen möchten, sollten Sie Folgendes versuchen:

git clone https://github.com/example/example.git ./
11
Luis

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

9
alex

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).

9
kenorb

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

7
Nagarjun

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.

3
Ev-

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.

1
Ankit Singh

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
0
prosti
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 .
0
Tarit Ray

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>
0
Tarik