2013-07-10 16 views
32

Ich habe Zugriff auf den Server, und möchte Git Repo in meinen Stammordner klonen. Aber wenn ich Klon mache, wird es mich zum Ordner mit dem Projektnamen machen, und mein Projektordner ist meine Wurzel. Ich habe nicht Zugang zu meinem übergeordneten Ordner meine WurzelGit Clone ohne Projektordner

/var/www/sites/mysite/ 

ist und wenn ich Ordnerstruktur kann das Klonen wird

/var/www/sites/mysite/mysite 
+0

Achten Sie darauf, .git nicht in Apache/Webserver der Wahl zu liefern. – mnagel

Antwort

80

git clone akzeptiert 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 . 

aber zur Kenntnis, dass von man git-clone:

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

2

Sie Ihr Projekt in Unterordner klonen und sie alle Dateien bewegen, einschließlich der .git Ordner in den übergeordneten Ordner (Ihre Wurzel).

+1

warum es nicht einfacher gemacht werden kann, wie git klon [email protected]: was auch immer. \ – dzona

+0

kann es, siehe rodrigos antwort. aber ich weiß, dass ein Git Repo nur ein Haufen von Dateien ist, die frei herum bewegt werden können, diese Antwort ist leicht zu merken. – mnagel

11

Sie können auch nur das Einrichten eines neuen Repo und dann die Tracking-Fernbedienung und Zweig:

git init . 
git remote add origin [email protected]:user/repo.git 
git fetch origin 
git checkout master 
+0

Dies funktioniert immer noch nicht, wenn der Repo einen übergeordneten Ordner hat – Hittz

4

Denken Sie daran, dass ein Git Repository ist einfach die Verzeichnisstruktur, wo Sie es speichern. Wenn Sie also ein Repository in das falsche Verzeichnis klonen, können Sie den Verzeichnisinhalt einfach an eine beliebige andere Stelle verschieben, und die Repository-Daten sind noch intakt. So können Sie z. B. 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