我已经克隆了一个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
答案 0 :(得分:1)
在git clone
期间下载这些分支
做一个git branch -avv
,你会看到它们:如remotes/origin/abranch
(abranch
只是一个例子)
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-export
或git checkout genset
已自动将这些本地分支与其上游对等分支相关联,远程跟踪分支origin/data-export
和{{1 }}。
他们的SHA1是相同的,这就是为什么origin/genset
或git fetch
会返回&#34;最新的&#34;答案。
只要在其中一个分支上完成提交,git pull
就会成功更新远程git push
回购中的同一分支。
请参阅full discussion here。
答案 1 :(得分:0)
再次克隆,只设置git remote add origin
对此有帮助