2013-07-10 5 views
32

Я дал доступ к серверу и хочу клонировать git repo в свою корневую папку. Но когда я делаю git clone, это сделает мне папку с именем проекта, а моя папка проекта - мой корень. Я не имею доступа к моей родительской папке мой кореньgit clone без папки проекта

/var/www/sites/mysite/ 

и когда я клонировать структуру папок будет

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

обязательно не отправляйте .git в apache/веб-сервере по выбору. – mnagel

ответ

80

git clone принимает последний аргумент, являющийся целевым каталогом, по умолчанию это имя проекта, но вы можете его изменить. В вашем случае вы, вероятно, хотите просто .:

$ git clone origin-url . 

Но обратите внимание, что из man git-clone:

Клонирование в существующий каталог разрешается только если каталог пуст.

2

Вы можете клонировать ваш проект в подкаталоге и их переместить все файлы, включая .git папку в родительскую папку (ваш корень).

+1

почему это невозможно сделать легче, например, git clone [email protected]: что угодно. \ – dzona

+0

он может, см. Rodrigos ответ. но я знаю, что git repo - это всего лишь куча файлов, которые можно свободно перемещать, этот ответ легко запомнить. – mnagel

11

Вы также можете просто настроить новый репо, а затем отслеживания удаленного и филиала:

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

Это не работает, если у репо есть родительская папка – Hittz

4

Помните, что хранилище мерзавец просто структура каталога, где вы храните его. Это означает, что когда вы клонируете репозиторий в неправильный каталог, вы можете просто перемещать содержимое каталога в другом месте, а вы хотите сохранить данные репозитория. Так, например, вы можете запускать следующие команды из командной строки:

$ 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