Git说分支是最新的,而不是

时间:2015-09-12 11:37:37

标签: git bitbucket

我已经克隆了一个bitbucket存储库,文件被下载到目录中。我发现只下载了master(main)分支的文件,在存储库中还有两个分支,在克隆过程中没有下载这两个分支的提交。当我通过git checkout切换到这些分支并使用git pull终端说already up-to-date但这些分支中没有任何内容是最新的。即使项目没有运行,因为缺少这些更新。 git下载了项目,但并非完整,我已经使用了其他Stack Overflow问题中的$ git fetch origin other-branch && git merge other-branch等更多命令,但没有更改。我只开始使用git,而且我只知道几个命令。有人能解释一下如何解决这个问题吗?我不知道我是否提供了足够的信息来解释。 git branch -avv给了我这个:

git branch -avv data-export dbc2e32 [origin/data-export] resolve conflicts and merge data-export to master * genset d93228b [origin/genset] Scoreboard with kilowatt hours master 4089eb8 [origin/master] allow 31h meter config remotes/origin/HEAD -> origin/master remotes/origin/data-export dbc2e32 resolve conflicts and merge data-export to master remotes/origin/genset d93228b Scoreboard with kilowatt hours remotes/origin/master 4089eb8 allow 31h meter config

2 个答案:

答案 0 :(得分:1)

git clone期间下载这些分支 做一个git branch -avv,你会看到它们:如remotes/origin/abranchabranch只是一个例子)

git checkout abranch会自动链接到远程跟踪分支origin/abranch

来自git checkout

  

如果找不到<branch>但是在一个具有匹配名称的遥控器(称为<remote>)中确实存在跟踪分支,则将其视为等效于

$ git checkout -b <branch> --track <remote>/<branch>

这解释了:

  

当我通过git checkout切换到这些分支并使用git pull终端说已经是最新的。

正如git branch -av的输出所示,git checkout data-exportgit checkout genset已自动将这些本地分支与其上游对等分支相关联,远程跟踪分支origin/data-export和{{1 }}。

他们的SHA1是相同的,这就是为什么origin/gensetgit fetch会返回&#34;最新的&#34;答案。

只要在其中一个分支上完成提交,git pull就会成功更新远程git push回购中的同一分支。
请参阅full discussion here

答案 1 :(得分:0)

再次克隆,只设置git remote add origin对此有帮助