使用 git init、git remote add、git fetch 等的 git 克隆相当于什么?



当前我无法从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)

我也不确定需要git遥控器中的标志-m或可能有害。

@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

就是这样。克隆是INIT,远程添加和获取部分,然后您可以例如git checkout master甚至在创建本地参考和git之前都将其设置并自动轨道轨道,因为该序列是如此普遍。-m只是绕过了Bitbucket Repo作为其自己的主分支的内容,并告诉本地git您想要的是您想要的,如果master是您想要的,那就是您想要的。

所以-m"应该",据我所知,请避免使用原点的HEAD进行任何错误的配置,而第二次提取"不应"必要"。如果您包括git ls-remote --symref origin HEAD的结果,可能会确定导致麻烦的原因,但是我看不到很多,您有解决方法。

最新更新