как использовать git "--unshallow" с клоном "--single-branch"? - PullRequest
1 голос
/ 13 февраля 2020

Я сначала мелко клонировал репо с глубиной = 1.

cd $folder_path
git init
git remote add $my_remote $url_to_repo
git fetch $my_remote $my_branch --depth=1
git reset --hard $my_remote/$my_branch
cd -

Затем я попытался отменить локальный клон, дважды выполнив это "дважды, и шаг за шагом все то же самое ...

$ git rev-parse --is-shallow-repository
--is-shallow-repository
$ git fetch $my_remote $my_branch --unshallow 
remote: Counting objects: 16, done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 16 (delta 8), reused 0 (delta 0)
Unpacking objects: 100% (16/16), done.
From ssh://my_git_url.git
 * branch              my_branch -> FETCH_HEAD
$ git rev-parse --is-shallow-repository
--is-shallow-repository

Так, что я делаю не так? как использовать --unshallow?

1 Ответ

1 голос
/ 13 февраля 2020

git rev-parse --is-shallow-repository должен возвращать true или false, поэтому использование if [[ ! -z "$(git rev-parse --is-shallow-repository)" ]] всегда рассматривается как TRUE, потому что даже false (возвращается командой) не является пустой строкой.

Кажется, ваша версия git не поддерживает подкоманду rev-parse --is-shallow-repository, и получается, что в этом случае любой флаг будет возвращен как вывод:

$ git rev-parse --repo-is-not-shallow-больше больше

$ --repo-is-not-shallow-больше больше

Из-за следующей ошибки ваше репо не мелкое и не дальше требуется действие:

роковое: --unshallow в полном хранилище не имеет смысла

...