[英]Cannot see upstream branches in git log or gitk
我分叉了一個GitHub存儲庫,在本地克隆了fork,並添加了遠程“上游”以指向原始存儲庫。 看來一切都已正確設置,但“ git log”和gitk僅顯示來自原點(我的叉子)的分支,而不顯示上游的分支。
我有一台機器,一切正常。 兩台計算機上的設置看起來相同。 我想念什么?
我的步驟:
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
如果我運行“ git log --oneline --decorate = short”,則只會看到原始分支。 例如:
dd98b4a (origin/master, master) Minor fixes in register. Documentation and minor UI changes. (#35)
但是在另一台可以運行的機器上,我也看到了上游分支:
dd98b4a (upstream/master, origin/master, master) Minor fixes in register. Documentation and minor UI changes. (#35)
兩台計算機上的所有設置似乎都相同。 以下每個命令的輸出都相同:
$ git remote -v
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遠程顯示上游
* 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 branch -r
origin/fix-webapp-startup
origin/master
origin/pass-ang-arg
origin/video
upstream/master
$ git ls-remote上游
867818be9d597ced7be5e8c1f40e033cb7f65b01 HEAD
867818be9d597ced7be5e8c1f40e033cb7f65b01 refs/heads/master
f4521d466eb98903abba4ccd92b81c2511462a1d refs/pull/15/head
6471492dfe3e253725e66265a30d8ef895d65630 refs/pull/22/head
... etc. ...
如果上游/主服務器已被提交,則相關的提交將不再是其HEAD,並且不會在git log中提及。 另一台計算機尚未收到新的提交。
編輯(更多說明):-- --decorate
瀏覽所有ref (本地和遠程上的所有ref (分支的所有標記和提示)),以查看它們是否指向提交。 因此,當出現新的提交時,該提交不再是分支的尖端,並且不再由--decorate
提及。 但是--decorate
實際上並不會在遠程--decorate
中查詢其引用,它只會檢查其本地副本(所有git repos都包含其遠程服務器的完整本地副本)。 必須使用例如git fetch
手動更新此本地副本。 因此,在另一台計算機上, upstream
的本地副本已過期。
在最近一次從upstream
遠程獲取 master
分支時,任何一台計算機上的upstream/master
服務器實際上都是本地副本。 它不是遙控器上的實際分支。 僅當您運行git fetch upstream master
時,它才會更新。 這意味着,如果有人承諾master
原始GitHub存儲庫中的內容,那么“其他”機器將不會反映這些更改,但您的最新克隆會反映出來。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.