git неглубокий клон * несколько * специфических c ссылок (коммитов), * которые не являются ветвями * - PullRequest
1 голос
/ 01 мая 2020

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

Вот некоторые вещи, которые я попробовал:

  • Я хочу получить два ссылок, следовательно, git clone --single-branch --branch BRANCHNAME не годится, потому что это выбирает только одну ветку
  • Я хочу получить ссылки, которые не являются именами ветвей (скажем, 4ebbd7cc6 и fc139d960), что является еще одной причиной, по которой git clone --single-branch --branch BRANCHNAME не годится.
  • Я хочу действительно минимальную историю. Только эти два коммита и больше ничего. Между этими двумя коммитами может быть любая произвольно длинная история git, и существуют сотни ветвей. Следовательно, делать git clone --depth N --no-single-branch нехорошо, так как он будет извлекать все ненужные мне ветки и теги, и я все равно не знаю, каким может быть хороший N, так что я бы все равно перегрузил, даже если не было никаких веток и тегов.

Как правильно выбрать ровно n коммитов и ничего больше ?

1 Ответ

1 голос
/ 01 мая 2020

Вместо клонирования решение состоит в том, чтобы инициировать пустое git репо и извлекать каждую ссылку по одному с --depth 1:

mkdir FOLDER_NAME
cd FOLDER_NAME
git init
git remote add origin GIT_URL
git fetch --depth 1 origin REF1
git fetch --depth 1 origin REF2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...