Что эквивалентно git clone, используя git init, git remote add, git fetch и т. Д.? - PullRequest
0 голосов
/ 21 февраля 2019

Поскольку в настоящее время я не могу клонировать репозитории с сервера Bitbucket , я обнаружил, что все еще могу выполнить серию git init, git remote add и т. Д., Чтобы получить репозиторий на моем компьютере.Я хотел бы удостовериться, что я точно произвел эквивалент «клона».Правильно ли следующее?

git init
git remote add origin -m master https://www.myserver.com/bitbucket/scm/proj/repo.git
# need to do git fetch twice, otherwise for some reason git branch -r 
# returns "warning: ignoring broken ref refs/remotes/origin/HEAD"
git fetch
git fetch
git branch -r
git checkout --track origin/master
git checkout --track origin/develop
git checkout --track origin/feature/myfeature
# (etc.. for all the branches I need to work with)

Я также не уверен, что флаг -m в git remote необходим или потенциально опасен.

Некоторая отладочная информация, предложенная @jthill:

Хранилище 1

git ls-remote --symref origin HEAD
ref: refs/heads/master  HEAD
842163b275ade3ec317543ed3a645f537d719766        HEAD

Хранилище 2

git ls-remote --symref origin HEAD
ref: refs/heads/master  HEAD
1a1044eef2d46a292305dfc10cf076a4cf1e9933        HEAD

1 Ответ

0 голосов
/ 21 февраля 2019

Вот и все.Клон является частью init, remote add и fetch, после этого вы можете, например, git checkout master даже до создания локального ref, а git настроит его и автоматически отследит удаленный, потому что эта последовательность очень распространена.-m просто обходит то, что у этого репозитория bitbucket есть в качестве своей собственной основной ветви, и сообщает локальному git, что вы хотите как свой, если master - это то, что вы хотите, это то, что вы хотите.

Так что -m «следует», насколько я могу понять, избегайте любой неверной конфигурации с HEAD источника, и вторая выборка «не должна» быть необходимой.Если вы включите результаты git ls-remote --symref origin HEAD, возможно, будет возможно определить причину проблемы, но я не вижу особого смысла, у вас есть обходной путь.

...