我有一个原产地和上游遥控器的回购。通常在我的工作流程中 我从上游拉出更改,然后将它们推送到我的原点(在这种情况下, 我的上游是我公司的GitHub组织的回购,规范的回购,以及 我的起源是我的分支。)
问题是我的upstream/master
远程跟踪分支似乎没有
使用git 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分支是在commit 2,197ac91
(我可以通过访问它的github页面或重新克隆repo来验证),那么为什么不是{{1在我的仓库中upstream/master
上的远程跟踪分支?我的回购中197ac91
远程跟踪分支移动的唯一时间是我推送它。如何让它反映上游仓库中主分支的实际位置?
这是我的upstream/master
:
.git/config
更新:这似乎与this question重复。我可以通过运行[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
添加到该命令的末尾会阻止更新本地远程跟踪分支。
答案 0 :(得分:1)
这主要是猜测,但是根据您的修改和git-pull-origin-master-does-not-update-origin-master,您似乎指定了
git pull upstream master
git注意到您已指定从upstream
获取,然后它会注意到您要更新master
分支。但是,不是从upstream/master
更新,而是master
看到origin
有远程git pull upstream/master
,而是从那里更新。
从另一个帖子看,您应该使用{{1}}来更新本地分支。
答案 1 :(得分:0)
如果您没有推送到upstream
,并且没有其他人推送您的更改,那么upstream
可能尚未更新您的最新提交。