Выполнение команды git clone git@github.com:whatever
создает каталог в моей текущей папке с именем whatever
и помещает содержимое хранилища Git в эту папку:
/httpdocs/whatever/public
Моя проблема в том, что мне нужно, чтобы содержимое репозитория Git было клонировано в мой текущий каталог, чтобы оно отображалось в правильном месте для веб-сервера:
/httpdocs/public
Я знаю, как перемещать файлы после того, как я клонировал репозиторий, но это, похоже, нарушает работу Git, и я хотел бы иметь возможность обновлять его, просто вызывая git pull
. Как я могу это сделать?
git
repository
git-clone
Дэвид Смит
источник
источник
Ответы:
Вариант А:
Ergo, для
right here
использования:Вариант Б:
Переместите
.git
папку тоже. Обратите внимание, что.git
папка скрыта в большинстве графических файлов, поэтому обязательно покажите скрытые файлы.Первая строка захватывает все обычные файлы, вторая строка захватывает точечные файлы. Также возможно сделать это в одну строку, включив dotglob (т.е.
shopt -s dotglob
), но это, вероятно, плохое решение, если вы задаете вопрос, на который отвечает этот ответ.Еще лучше:
Сохраните свою рабочую копию где-нибудь еще и создайте символическую ссылку. Нравится:
Для вашего случая это будет что-то вроде:
Который легко можно изменить, чтобы проверить, если вы этого хотите, то есть:
без перемещения файлов. Добавляется
-fn
в случае, если кто-то копирует эти строки (-f
принудительно,-n
избегайте некоторых часто нежелательных взаимодействий с уже существующими и несуществующими ссылками).Если вы просто хотите, чтобы это работало, используйте вариант А, если кто-то еще собирается посмотреть на то, что вы сделали, используйте вариант С.
источник
ln -s path/to/.git path/to/working/directory
Пример, который я думаю, что многие люди задают этот вопрос, следующий. Если вы находитесь в каталоге, в который вы хотите выгрузить содержимое репозитория git, выполните:
"." в конце указывается текущая папка как папка оформления заказа.
источник
ls -a
покажет все файлы, включая скрытые.Зайдите в папку .. Если папка пуста, то:
еще
источник
switch -t
документации по git checkout явно не указано on .Базовое клонирование репозитория Git
Вы клонируете репозиторий с
Например, если вы хотите клонировать библиотеку Git Drupal Open Framework Стэнфордского университета под названием open_framework, вы можете сделать это следующим образом:
Это создает каталог с именем open_framework (в вашей текущей локальной файловой системе), инициализирует внутри него каталог .git, извлекает все данные для этого хранилища и извлекает рабочую копию последней версии. Если вы войдете во вновь созданный каталог open_framework, вы увидите там файлы проекта, готовые для работы или использования.
Клонирование репозитория в определенную локальную папку
Если вы хотите клонировать репозиторий в каталог с именем, отличным от open_framework, вы можете указать это в качестве следующего параметра командной строки:
Эта команда делает то же самое, что и предыдущая, но целевой каталог называется mynewtheme.
Git имеет несколько различных протоколов передачи, которые вы можете использовать. В предыдущем примере используется протокол git: //, но вы также можете увидеть http (s): // или user @ server: /path.git, который использует протокол передачи SSH.
источник
Чтобы клонировать git-репозиторий в определенную папку, вы можете использовать
-C <path>
параметр, напримерХотя он по-прежнему будет создавать
whatever
папку поверх него, поэтому для клонирования содержимого хранилища в текущий каталог используйте следующий синтаксис:Обратите внимание, что клонирование в существующий каталог допускается только в том случае, если каталог пуст .
Поскольку вы клонируете в общедоступную папку, рассмотрите возможность отделения вашего Git-репозитория от рабочего дерева, используя
--separate-git-dir=<git dir>
или исключая.git
папку в конфигурации вашего веб-сервера (например, в.htaccess
файле).источник
Чтобы клонировать в текущий рабочий каталог :
Чтобы клонировать в другой каталог :
Надеюсь, поможет :)
источник
./
в начале пути к папкеКогда вы перемещаете файлы туда, где вы хотите их, вы также перемещаете
.git
каталог? В зависимости от вашей ОС и конфигурации этот каталог может быть скрыт.Он содержит репозиторий и вспомогательные файлы, в то время как файлы проекта, которые находятся в вашем
/public
каталоге, являются только версиями в текущем извлеченном коммите (основная ветвь по умолчанию).источник
Клон:
Клонируем "конкретную ветку":
источник
Если вы хотите клонировать в текущую папку, попробуйте это:
источник
Применение
Клонируйте хранилище, расположенное в <хранилище>, на локальный компьютер. Исходный репозиторий может находиться в локальной файловой системе или на удаленном компьютере, доступном через HTTP или SSH.
Клонируйте репозиторий, расположенный в <repository>, в папку с именем <directory> на локальном компьютере.
Источник: Настройка хранилища
источник
Убедитесь, что вы удалили репозиторий .git, если пытаетесь зайти в текущий каталог.
rm -rf .git
тогдаgit clone https://github.com/symfony/symfony-sandbox.git
источник
Вот как я бы это сделал, но я сделал псевдоним, чтобы сделать это для меня.
Вероятно, есть более элегантный способ сделать это, однако я обнаружил, что для меня это проще всего.
Вот псевдоним, который я создал, чтобы ускорить процесс. Я сделал это для zsh, но он должен прекрасно работать для bash или любой другой оболочки, такой как fish, xyzsh, fizsh и так далее.
Edit
~/.zshrc
,/.bashrc
и т.д. с вашим любимым редактором (шахта Leafpad, так что я бы написать$ leafpad ~/.zshrc
).Однако я предпочитаю создать плагин zsh для отслеживания всех моих псевдонимов. Вы можете создать персональный плагин для oh-my-zsh, выполнив следующие команды:
Затем добавьте эти строки в только что созданный пустой файл alises.plugin:
(Отсюда замените свое имя на мое.)
Затем, чтобы заставить работать псевдонимы, они (вместе с zsh) должны быть получены (или как там это называется). Для этого в вашем документе плагина добавьте:
Сохраните ваш плагин oh-my-zsh и запустите
allsource
. Если это не похоже на работу, просто запуститеsource $ZSH/oh-my-zsh.sh; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh
. Это загрузит источник плагина, который позволит вам использоватьallsource
с этого момента .Я нахожусь в процессе создания репозитория Git со всеми моими псевдонимами. Пожалуйста, не стесняйтесь проверить их здесь: точечные файлы Ev . Пожалуйста, не стесняйтесь раскошелиться и улучшить их в соответствии с вашими потребностями.
источник
Если вы используете
ssh
дляgit cloning
вы можете использовать следующую команду.git -C path clone git@github.com:path_to_repo.git
Например:
git -C /home/ubuntu/ clone git@github.com:kennethreitz/requests.git
перетащит Git-репозиторий наrequests
ваш/home/ubuntu/
путь.источник
По какой-то причине этот синтаксис не выделяется:
git clone repo-url [folder]
Здесь папка - необязательный путь к локальной папке (которая будет локальным хранилищем).
Git
clone
также будетpull
кодировать из удаленного репозитория в локальный репозиторий. На самом деле это правда:источник
Хотя все ответы, приведенные выше, хороши, я хотел бы предложить новый метод вместо использования метода символьной ссылки в общедоступном каталоге html, как предложено BEST в принятом ответе. Вам необходимо иметь доступ к настройкам виртуального хоста вашего сервера.
Речь идет о настройке виртуального хоста вашего веб-сервера, напрямую указывающего на каталог репозитория. В Apache вы можете сделать это следующим образом:
Вот пример файла виртуального хоста:
источник
Вы можете использовать следующую команду git для клонирования с пользовательским именем каталога
Примечание: вам не нужно создавать свой обычный каталог, потому что он будет создан автоматически
источник
источник
По поводу этой строки из оригинального поста:
Я могу это сделать, и пока не вижу проблем с операциями добавления, фиксации, push, pull.
Этот подход изложен выше, но не разбит на этапы. Вот шаги, которые работают для меня:
Существующая папка, в которую вы только что скопировали файлы, теперь готова к взаимодействию с git.
источник