什么相当于git clone,使用git init,git remote add,git fetch等?

问题描述 投票:0回答:1

正如目前I cannot clone repositories from a Bitbucket server,我发现我仍然可以做一系列的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 remote中的标志-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
git bitbucket git-clone bitbucket-server
1个回答
1
投票

而已。克隆是init,远程添加和获取部分,之后您可以例如git checkout master甚至在创建本地ref之前,git会将其设置并自动跟踪遥控器,因为该序列非常常见。 -m只是绕过了那个bitbucket repo作为它自己的主要分支,告诉当地的git你想要什么,如果master是你想要的,那就是你想要的。

因此,-m“应该”,尽可能接近,避免原点的HEAD发生任何错误配置,并且第二次获取“不应该”是必要的。如果你将包括git ls-remote --symref origin HEAD的结果,它可能有可能找出造成麻烦的原因,但我没有看到太多意义,你有一个解决方法。

© www.soinside.com 2019 - 2024. All rights reserved.