Как вы клонируете репозиторий Git в определенную папку? - PullRequest
1958 голосов
/ 16 марта 2009

Выполнение команды git clone git@github.com:whatever создает каталог в моей текущей папке с именем any и помещает содержимое хранилища Git в эту папку:

/httpdocs/whatever/public

Моя проблема в том, что мне нужно, чтобы содержимое репозитория Git было клонировано в мой текущий каталог, чтобы оно отображалось в правильном месте для веб-сервера:

/httpdocs/public

Я знаю, как перемещать файлы после того, как я клонировал репозиторий, но это, кажется, нарушает работу Git, и я хотел бы иметь возможность обновляться, просто вызывая git pull. Как я могу это сделать?

Ответы [ 17 ]

2804 голосов
/ 16 марта 2009

Вариант A:

git clone git@github.com:whatever folder-name

Вариант B:

Переместите папку .git.

Еще лучше:

Сохраните свою рабочую копию где-нибудь еще и создайте символическую ссылку.

565 голосов
/ 25 февраля 2010

Примером, по-моему, многие задают этот вопрос, является следующий. Если вы в каталоге, в который вы хотите сохранить содержимое репозитория git, запустите:

git clone git@github.com:whatever .

"." в конце указывает текущую папку в качестве папки извлечения.

202 голосов
/ 12 декабря 2013

Перейдите в папку .. Если папка пуста, то:

git clone git@github.com:whatever .

еще

git init
git remote add origin PATH/TO/REPO
git fetch
git checkout -t origin/master
81 голосов
/ 24 апреля 2013

Базовое клонирование репозитория Git

Вы клонируете хранилище с

git clone [url]

Например, если вы хотите клонировать библиотеку Git Drupal Open Framework Стэнфордского университета под названием open_framework, вы можете сделать это следующим образом:

$ git clone git://github.com/SU-SWS/open_framework.git

Это создает каталог с именем open_framework (в вашей текущей локальной файловой системе), инициализирует внутри него каталог .git, извлекает все данные для этого хранилища и извлекает рабочую копию последней версии. Если вы войдете во вновь созданный каталог open_framework, вы увидите там файлы проекта, готовые к работе или использованию.

Клонирование репозитория в определенную локальную папку

Если вы хотите клонировать репозиторий в каталог с именем, отличным от open_framework, вы можете указать это в качестве следующего параметра командной строки:

$ git clone git:github.com/SU-SWS/open_framework.git mynewtheme

Эта команда делает то же самое, что и предыдущая, но целевой каталог называется mynewtheme.

Git имеет несколько различных протоколов передачи, которые вы можете использовать. В предыдущем примере используется протокол git: //, но вы также можете увидеть http (s): // или user @ server: /path.git, который использует протокол передачи SSH.

13 голосов
/ 16 марта 2009

Когда вы перемещаете файлы туда, куда вы хотите, перемещаете ли вы также каталог .git? В зависимости от вашей ОС и конфигурации этот каталог может быть скрыт.

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

13 голосов
/ 04 апреля 2013

Клон:

git clone git@jittre.unfuddle.com:jittre/name.git

Клонировать "конкретную ветку":

git clone -b [branch-name] git@jittre.unfuddle.com:jittre/name.git
12 голосов
/ 21 марта 2017

Для клонирования в Текущий рабочий каталог :

git clone https://github.com/link.git

Для клонирования в Другой каталог :

git clone https://github.com/link.git ./Folder1/Folder2

Надеюсь, это поможет:)

12 голосов
/ 11 сентября 2016

Если вы хотите клонировать в текущую папку, попробуйте следующее:

git clone https://github.com/example/example.git ./
11 голосов
/ 08 января 2017

Чтобы клонировать git-репозиторий в определенную папку, вы можете использовать параметр -C <path>, например,

git -C /httpdocs clone git@github.com:whatever

Хотя он по-прежнему будет создавать папку whatever поверх нее, поэтому для клонирования содержимого хранилища в текущий каталог используйте следующий синтаксис:

git git@github.com:whatever .

Обратите внимание, что клонирование в существующий каталог допускается только * , если каталог пуст .

Поскольку вы клонируете в общедоступную папку, рассмотрите возможность отделения хранилища Git от рабочего дерева с помощью --separate-git-dir=<git dir> или исключите папку .git в конфигурации веб-сервера (например, в файле .htaccess).

9 голосов
/ 26 февраля 2011

Убедитесь, что вы удалили репозиторий .git, если вы пытаетесь зайти в текущий каталог.

rm -rf .git, затем git clone https://github.com/symfony/symfony-sandbox.git

...