我有一个带有来源和上游遥控器的仓库。通常在我的工作流程中,我从上游提取更改,然后将它们推送到我的源(在这种情况下,我的上游是我公司的 GitHub 组织的 repo,规范的,我的源是我的分支)。
问题是我的upstream/master
远程跟踪分支似乎没有用 Igit pull upstream master
或git fetch upstream master
.
所以如果我从这样的事情开始:
* d386ff8 (upstream/master, origin/master, master) commit 1
然后运行git pull upstream master && git push origin master
,我最终得到这样的结果:
* 197ac91 (origin/master, master) commit 2
* d386ff8 (upstream/master) commit 1
我知道上游 repo 上的 master 分支在提交 2,197ac91
(我可以通过访问其 github 页面或重新克隆 repo 来验证),那么为什么我的 repo 中没有upstream/master
远程跟踪分支197ac91
?upstream/master
我的仓库中的远程跟踪分支移动的唯一一次是当我推送到它时。我如何让它反映上游 repo 上的 master 分支实际上在哪里?
这是我的.git/config
:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = false
[remote "origin"]
url = git@github.com:me/repo.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[remote "upstream"]
url = git@github.com:mycompany/repo.git
fetch = +refs/heads/*:refs/remotes/upstream/*
更新:这似乎是这个问题的副本。我可以通过运行来解决我的问题git fetch upstream
。显然master
,由于某种原因,在该命令的末尾添加会阻止更新本地远程跟踪分支。