Клонировать содержимое репозитория GitHub (без самой папки)


233

Я хотел бы, чтобы git cloneсодержимое хранилища у меня на GitHub . Когда я git clone(git @ github: me / name.git ...) получаю папку с именем name/и внутри имени у меня есть содержимое ... Как мне получить ПРОСТО содержимое?



Чтобы фактически пропустить загрузку ненужных объектов для экономии сетевых ресурсов: stackoverflow.com/questions/600079/…
Ciro Santilli 法轮功 冠状 病 六四 事件 法轮功

Ответы:


314

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

git clone git@github:me/name.git .

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

Этот необязательный [directory]параметр задокументирован на git cloneстранице руководства , где указано , что клонирование в существующий каталог разрешено только в том случае, если этот каталог пуст.


2
К сожалению, это не работает, если есть другие, не связанные каталоги, уже в том же каталоге. Ищем решение. Сообщение об ошибке: «fatal: destination path». ' уже существует ... "
Джон Литтл

12
Каталог git клонов в должен быть пустым
jolyonruss

1
@HumaunRashid Добавить .как обсуждено в ответе git clone https://github.com/humaun21/Test .. И да, git@github.me/name.gitявляется местозаполнителем для вашего реального адреса git-репо.
Аарон Кэмпбелл

1
@JohnLittle Если бы возникла та же проблема, оказалось, что там есть скрытый файл .DS_Store, который там скрывается. Просто rm .DS_Storeи ты в порядке.
Selrond

1
Если вы работаете в ОС Linux, вам нужно убедиться, что каталог пуст, включая проверку на наличие скрытых файлов и подкаталогов. Вы можете сделать это с помощью ls -a. Вы должны иметь только. и .. как выходной. В противном случае это не сработает
Ayo Makanjuola

156

К сожалению, это не работает, если есть другие, не связанные каталоги, уже в том же каталоге. Ищем решение. Сообщение об ошибке: «fatal: destination path». ' уже существует...".

Решение в этом случае:

git init
git remote add origin git@github.com:me/name.git
git pull origin master

Этот рецепт работает, даже если есть другие каталоги, в которых вы хотите оформить заказ.


Эй, в этом я получаю сообщение об ошибке типа «Отказано в доступе <открытый ключ>». Удаленный конец неожиданно повесил трубку.
Стэн

Разве это не должно быть github.comпосле git remote ..., а не только github?
атп

5
Этот ответ должен был быть принят один. работает отлично.
vikramvi

Я читал в другом месте здесь, что вам нужно запустить git fetch --allдо git pull origin master, потому что, если в репо есть другие ветви, git pullони не будут получены, если вы не используете fetchсначала. Это верно?
Alex G

38

Если папка не пуста, у меня сработала слегка измененная версия ответа @ JohnLittle:

git init
git remote add origin https://github.com/me/name.git
git pull origin master

Как отметил @ peter-cordes, единственное отличие заключается в использовании протокола https вместо git, для которого вам необходимо настроить ключи SSH .


Какую версию Git вы используете? Это не сработало для меня. Это все еще не позволяет мне установить это, потому что
каталог

@ guribe94 git версия 2.5.0
Томаш Земанович

3
Это тот же ответ, просто используя анонимный https вместо git-протокола поверх ssh (требуется учетная запись github с настроенной парой ключей ssh).
Питер Кордес

15

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

git clone <remote> .

Это приведет к клонированию хранилища непосредственно в текущем локальном каталоге.


2

клонировать git repo в текущую и пустую папку (нет git init) и, если вы не используете ssh:

git clone https://github.com/accountName/repoName.git .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.