我分叉了一个GitHub仓库,在本地克隆了我的分叉并添加了远程"上游"指向原始回购。它似乎一切都设置正确,但" git log"和gitk只显示来自原点(我的叉子)而不是上游的分支。
我有另一台机器,一切正常。两台机器上的设置显示相同。我错过了什么?
我的步骤:
Header set Cache-Control max-age=0
如果我运行" git log --oneline --decorate = short",我只看到原始分支。例如:
git clone https://github.com:johnpankowicz/govmeeting.git
cd govmeeting
git remote add upstream https://github.com/govmeeting/govmeeting.git
git branch --set-upstream master upstream/master
git fetch upstream
但是在我的另一台机器上工作的地方,我也看到了上游的分支机构:
dd98b4a (origin/master, master) Minor fixes in register. Documentation and minor UI changes. (#35)
两台机器上的所有内容似乎都设置相同。以下每个命令的输出都相同:
$ git remote -v
dd98b4a (upstream/master, origin/master, master) Minor fixes in register. Documentation and minor UI changes. (#35)
$ git remote show upstream
origin https://github.com/johnpankowicz/govmeeting.git (fetch)
origin https://github.com/johnpankowicz/govmeeting.git (push)
upstream https://github.com/govmeeting/govmeeting.git (fetch)
upstream https://github.com/govmeeting/govmeeting.git (push)
$ git branch -r
* remote upstream
Fetch URL: https://github.com/govmeeting/govmeeting.git
Push URL: https://github.com/govmeeting/govmeeting.git
HEAD branch: master
Remote branch:
master tracked
Local ref configured for 'git push':
master pushes to master (local out of date)
$ git ls-remote upstream
origin/fix-webapp-startup
origin/master
origin/pass-ang-arg
origin/video
upstream/master
答案 0 :(得分:3)
如果已经提交了upstream / master,则相关提交不再是其HEAD,并且git log不会提及。另一台机器还没有收到新的提交。
编辑(更多解释):--decorate
查看所有 refs (分支的所有标记和提示,包括本地和远程)以查看是否有任何指向承诺。因此,当出现新提交时,提交不再是分支的提示,--decorate
将不再提及。但--decorate
实际上并不查询远程仓库的refs,它只检查它的本地副本(所有git repos都包含其远程仓库的完整本地副本)。必须使用例如手动更新本地副本。 git fetch
。因此,在另一台计算机上,upstream
的本地副本已过期。
答案 1 :(得分:2)
upstream/master
实际上是master
远程upstream
分支的最新提取时的本地副本。 不遥控器上的实际分支。它只会在您运行git fetch upstream master
时更新。这意味着如果有人在原始GitHub仓库中提交master
,那么“其他”机器将不会反映这些更改,但最近的克隆将会发生。