因此,在我以前的角色中,每當有人在“開發”中創建分支時,我都可以重繪 /拉取,并且該分支將出現在我的 VSC 源控制元件中。如果在 GitHub 上洗掉了一個分支,該分支也會在 VSC 中洗掉(消失)。在這個新的 repo 中,我們使用主要和分支,更多地作為存盤代碼的地方,而不是更新網站。
正如您在下面看到的,在 PR 合并后,我洗掉了(在 GitHub 上)這些分支。它們不會自動消失。

此外,如果其他人從 main 創建一個分支,它不會出現在我的串列中(因為我的不會出現在他們的串列中)。在此之前將是自動的。這很煩人,例如,今天我為另一個開發人員準備了一個分支,并希望他們只重繪 “分支”并切換到它。
我已經嘗試過 git fetch、git remote update origin、prunes 等 - 除了手動更新和從 github 克隆分支之外似乎沒有任何效果。
建議非常感謝。這與回購設定有關嗎?
編輯:回購的新克隆:分支不顯示。我運行了一個 git fetch 和 fetch --all 但正如你所見,什么也沒發生。


可能還值得一提的是,如果我在 GitHub Desktop 上打開 repo,我可以看到分支,我可以切換到分支 > 在 VSC 中打開,然后分支現在正在顯示,允許我在主分支和所述分支之間交換為預期的。
下面是 git branch --all 的截圖

uj5u.com熱心網友回復:
根據評論中的討論,我認為我們已經確定事情按預期進行,問題是由于對本地分支機構和遠程跟蹤分支機構之間的差異的輕微誤解而產生的。
有很多方法可以對此進行概念化,但我喜歡認為分支位于 3 個桶中的 1 個中:
- 遠程分支:現在遠程存盤庫上的分支。
- 遠程跟蹤分支:您上次提取時的 #1 副本(或提取的包含提取的副本,或者如果您從那時起從未提取或提取過,則克隆)。
- 本地分支:已在本地簽出且尚未洗掉的分支。
從您的角度來看,您機器上的存盤庫由存盤桶 2 和 3 組成。您看到的檔案系統由您現在簽出的提交表示,這可能由您的本地分支之一指向,如果不是,您處于“分離”模式。
當您克隆存盤庫時,您將獲得當時的存盤庫副本。您從 (#1) 克隆的服務器上的所有分支都被復制到您的存盤庫中并存盤為遠程跟蹤分支(#2) 這些分支以您的遠程名稱為前綴,通常是origin. 此外,當您克隆時,默認分支將作為您唯一的本地分支檢出(在您的情況下,默認分支是main)并且位于存盤桶 #3 中。您可以使用以下命令查看分支:
git branch # view only your local branches
git branch -r # view only your remote tracking branches
git branch --all # view both your local and remote tracking branches
克隆后,如果您使用該命令git branch --all,您應該會看到一個本地分支,以及 repo 擁有的所有遠程跟蹤分支。請注意,分支只是指向提交的指標,此時您的本地main將指向與origin/main.
每當您第一次簽出現有的遠程跟蹤分支時,您都會創建一個指向同一提交的新本地分支指標。如果您使用與現有遠程跟蹤分支相同的名稱但沒有origin前綴,它將假定這就是您的意思并為您跟蹤它。否則,您可以創建一個您想要的任何名稱的新分支,并將其指向您想要的任何提交。
因此,在您的問題的背景下,這就是正在發生的事情:
- 當您
git fetch連接到遠程服務器時,將存盤桶 1 中的最新分支復制到存盤桶 2。這會引入新的遠程跟蹤分支名稱,并更新已移動到不同提交的現有分支。 - 當您
git fetch --prune執行與第 1 項相同的操作時,但您還會洗掉存盤桶 #2 中的任何遠程跟蹤分支,這些分支已在存盤桶 #1 中洗掉。 - 除了您之外,沒有任何內容會洗掉存盤桶 #3 中的任何本地分支。
旁注:我認為另一個混亂的來源是您同時使用 GitHub Desktop 和 VS Code,它們以不同的方式顯示“分支”。GitHub Desktop 將桶 #2 和 #3 中的分支集中到相同的分支串列中(本質上git branch --all)。另一方面,VS Code 分離視圖,并將本地分支(使用 3 號存盤桶git branch)放在“分支”下,將遠程跟蹤分支(使用 2 號存盤桶git branch -r)放在“遠程”下。這解釋了為什么在 VS Code 中找不到所有分支。
uj5u.com熱心網友回復:
我懷疑您以前啟用了自動獲取設定,但現在以某種方式禁用了它們。檢查以下設定:
git.autofetchgit.autofetchPeriod

如果您在以前的角色中共享了 settings.json 檔案,則該“團隊”可能已啟用這些檔案,而現在您在新角色中使用的 settings.json 檔案已禁用它們。
您可能還需要啟用git.pruneOnFetch。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/528624.html
