Клонувати вміст сховища GitHub (без самої папки)


232

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



Щоб дійсно пропустити завантаження непотрібних об'єктів , щоб зберегти мережеві ресурси: stackoverflow.com/questions/600079 / ...
Чіро Сантіллі郝海东冠状病六四事件法轮功

Відповіді:


313

Якщо поточний каталог порожній, ви можете зробити це за допомогою:

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

(Зверніть увагу .на в кінці, щоб вказати поточний каталог.) Звичайно, це також створює .gitкаталог у вашій поточній папці, а не лише вихідний код вашого проекту.

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


2
На жаль, це не працює, якщо в цьому ж режимі вже є інші, не пов'язані з цим каталоги. Шукаєте рішення. Повідомлення про помилку: "fatal: шлях призначення". " вже існує ... »
Джон Маленький

12
Клон клонів у git повинен бути порожнім
jolyonruss

1
@HumaunRashid Додати , .як описано в відповідь: git clone https://github.com/humaun21/Test .. І так, git@github.me/name.gitє заповнювачем будь-якої фактичної адреси git repo.
Аарон Кемпбелл

1
@JohnLittle У тієї ж проблеми, виявляється, є прихований .DS_Store файл, який там ховається. Просто rm .DS_Storeі вам добре їхати.
Селронд

1
Якщо ви працюєте на ОС Linux, вам потрібно бути впевненим, що каталог порожній, включаючи перевірку прихованих файлів і підкаталогів. Ви можете зробити це за допомогою ls -a. Ви повинні мати тільки. і .. як вихід. Це не буде працювати інакше
Ayo Makanjuola

156

На жаль, це не працює, якщо в цьому ж режимі вже є інші, непов'язані каталоги. Шукаєте рішення. Повідомлення про помилку: "fatal: шлях призначення". " вже існує...".

Рішення в цьому випадку:

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спочатку. Це правильно?
Алекс Г

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

@ guribe94 git версія 2.5.0
Tomáš Zemanovič

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.