2

我有一个带有来源和上游遥控器的仓库。通常在我的工作流程中,我从上游提取更改,然后将它们推送到我的源(在这种情况下,我的上游是我公司的 GitHub 组织的 repo,规范的,我的源是我的分支)。

问题是我的upstream/master远程跟踪分支似乎没有用 Igit pull upstream mastergit 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远程跟踪分支197ac91upstream/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,由于某种原因,在该命令的末尾添加会阻止更新本地远程跟踪分支。

4

2 回答 2

1

这主要是推测,但从您的编辑和git-pull-origin-master-does-not-update-origin-master来看,似乎当您指定

git pull upstream master

git 注意到您指定了 fetch from upstream,然后它注意到您想要更新master分支。但不是从upstream/mastermaster更新origin,而是从那里更新。

从另一个线程看来,您应该使用它git pull upstream/master来更新本地分支。

于 2013-05-16T21:03:31.553 回答
0

如果您不推送到upstream,并且没有其他人推送您的更改,则upstream可能尚未使用您的最新提交进行更新。

于 2013-05-16T19:41:00.967 回答