Мне интересно, как вытащить репо со всеми коммитами, которые не были gc'd, если это возможно ..
это что-то вроде:
$ git clone x
$ cd x
$ git fetch origin -f
? или что-то другое?
Я не знаю ни одной команды, которая бы говорила: «Снять все объекты коммитов в удаленном репозитории, даже те, на которые нет ссылок».
Вы можете вносить коммиты только со ссылкой в удаленном хранилище. Вы можете сделать это с помощью команды:
git fetch [remote] [remoteBranch]:[localBranch]
Удаленный репозиторий должен будет создать ссылку на любые висячие коммиты, прежде чем вы сможете получить их. Если у вас есть доступ к удаленному репозиторию, вы можете сделать это с помощью команды:
git fsck --lost-found
Вывод покажет вам любые висячие коммиты. Дайте им ссылку с помощью git branch [branchname] [commit sha1]
, после чего вы сможете их получить.