Git-Klon ohne Projektordner

85

Ich habe Zugriff auf den Server gewährt und möchte Git Repo in meinen Stammordner klonen. Aber wenn ich Git klone, werde ich einen Ordner mit dem Projektnamen und mein Projektordner ist mein Stamm. Ich habe keinen Zugriff auf meinen übergeordneten Ordner, in dem sich mein Stamm befindet

/var/www/sites/mysite/

und wenn ich das Klonen der Ordnerstruktur werde

/var/www/sites/mysite/mysite
dzona
quelle
2
Stellen Sie sicher, dass Sie .git nicht in einem Apache / Webserver Ihrer Wahl liefern.
Mnagel

Antworten:

193

git cloneAkzeptiert ein letztes Argument, das das Zielverzeichnis ist. Es ist standardmäßig der Name des Projekts, aber Sie können es ändern. In Ihrem Fall möchten Sie wahrscheinlich einfach .:

$ git clone origin-url .

Beachten Sie jedoch, dass von man git-clone:

Das Klonen in ein vorhandenes Verzeichnis ist nur zulässig, wenn das Verzeichnis leer ist.

Rodrigo
quelle
4
git clone @rodrigo ./heaven
a_m_dev
Und wie wäre es, zwei Ebenen tief zu klonen? Ich habe zwei Ordner oben auf der pom.xml?
Bionix1441
1
@ Bionix1441: Ich weiß nichts über Ihre Verzeichnisstruktur, aber wenn Sie zwei Ebenen tiefer sind, schreiben Sie einfach git clone aaa/bbb. Wenn Sie zwei Level git clone ..höher machen möchten, können Sie es versuchen, aber das wird nicht funktionieren, weil Ihr Eltern-Directoy niemals leer ist.
Rodrigo
Die Struktur ist die folgende folder1\folder2\pom.xml, ich brauche nur die pom.xmlund die Ordner auf der gleichen Ebene wie diepom.xml
Bionix1441
34

Sie können auch einfach ein neues Repo und dann die Tracking-Fernbedienung und den Zweig einrichten:

git init .
git remote add origin [email protected]:user/repo.git
git fetch origin
git checkout master
Richo
quelle
Dies würde immer noch nicht funktionieren, wenn das Repo einen übergeordneten Ordner hat
Hittz
Musste auch den Upstream-Zweig so einstellen, dass er übereinstimmt: git branch --set-upstream-to=origin/master master Dann mussten lokale Änderungen an den Remote-Zweig übertragen werden: git push --force Dies ersetzte den alten Remote-Zweig durch meine lokale aktuelle Kopie.
Daniel ZA
7

Dies funktioniert auch unter Windows gut.

git init
git remote add origin [email protected]:user/repo.git
git pull origin master
hobbydev
quelle
5

Denken Sie daran, dass ein Git-Repository einfach die Verzeichnisstruktur ist, in der Sie es speichern. Dies bedeutet, dass Sie beim Klonen eines Repositorys in das falsche Verzeichnis den Verzeichnisinhalt einfach an eine beliebige andere Stelle verschieben können und die Repository-Daten noch intakt sind. So können Sie beispielsweise die folgenden Befehle über die Befehlszeile ausführen:

$ mv /var/www/sites/mysite/mysite/* /var/www/sites/mysite`
$ mv /var/www/sites/mysite/mysite/.* /var/www/sits/mysite`
$ rmdir /var/www/sites/mysite/mysite
Code-Lehrling
quelle
4

Sie können Ihr Projekt in einen Unterordner klonen und alle Dateien einschließlich des .gitOrdners in den übergeordneten Ordner (Ihr Stammverzeichnis) verschieben.

Sergey K.
quelle
3
warum es nicht einfacher geht, wie git clone [email protected]: was auch immer. \
dzona
es kann, siehe rodrigos antworten. Aber wenn Sie wissen, dass ein Git-Repo nur eine Reihe von Dateien ist, die frei verschoben werden können, ist diese Antwort leicht zu merken.
Mnagel
git clone git @ github: me / name.git.
Salman Mahmud