簡體   English   中英

在git log或gitk中看不到上游分支

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM