注意到我已經執行了:
git fetch
和
git fetch --prune
結果相同。
我的輸出git branch -r:
![為什么 git branch -r 顯示同一個分支的兩個名稱:origin/master 和 [repo name]/master?](https://img.uj5u.com/2022/04/30/40eff834adde41f3b621b6eebe3dc194.png)
一開始我很困惑,以為我創建了重復的分支,但是在 repo 頁面中,只有一個 master。(甚至 'dev-daal' 也被洗掉了)
編輯1:
我試著做
git fetch --all
現在我有兩個版本的一切:
![為什么 git branch -r 顯示同一個分支的兩個名稱:origin/master 和 [repo name]/master?](https://img.uj5u.com/2022/04/30/da88825980744570a0385ec19f31aacc.png)
uj5u.com熱心網友回復:
該git branch -r命令列出您的遠程跟蹤名稱。Git 在其一些檔案中稱它們為“遠程跟蹤分支名稱”,但盡管 Git 極端過度使用“分支”一詞,但遠程跟蹤名稱在一種非常重要的意義上并不是分支名稱。這就是為什么我喜歡省略誤導性的詞,只稱它們為“遠程跟蹤名稱”。
無論如何,關于遠程跟蹤名稱有幾件事需要了解:
它們在您的存盤庫中。除了下一點之外,它們不一定意味著任何其他存盤庫。
當您的 Git 軟體連接到與其他 Git 存盤庫一起作業的其他 Git 軟體時,您的 Git 軟體會在您的存盤庫中創建或更新它們,并且該其他 Git 軟體會告訴您的 Git 軟體另一個存盤庫當前具有一些分支名稱。由于分支名稱是臨時的且無意義的,但對于定位提交(永久且有意義)很有用,因此您的 Git 軟體會將這些名稱復制到您的存盤庫中,以便您可以使用它們的名稱。但由于這些是他們的分支名稱,而不是你的,你的 Git 會重命名他們的分支名稱。
您獲得的名稱(遠程跟蹤名稱)是通過使用您用來與他們的 Git 軟體對話的名稱(例如
originorDaal-Backend,添加一個斜杠/,然后使用他們的分支名稱來制作的)。因此,如果您的 Git 軟體正在使用該名稱Daal-Backend與其他 Git 軟體通信,并且該其他 Git 軟體告訴您,此時它們有一個名為 的分支master,您的Git 將Daal-Backend/master在您的存盤庫中創建或更新該名稱,以便您可以輕松檢索他們當前正在呼叫的提交的哈希 IDmaster。
如果他們——無論他們是誰——重命名他們的master.,你的 Git 將在下次你的 Git 呼叫他們的 Git 并與他們討論他們的分支名稱時選擇新名稱。屆時,您的 Git 軟體將創建一個新名稱,Daal-Backend/main例如,基于它們的新名稱。除非您告訴它,否則您的 Git不會 洗掉您的舊名稱。
同樣,如果他們完全洗掉master了他們(如果他們愿意,他們可以這樣做:名稱沒有什么特別之處master)并且您的 Git 呼叫他們的 Git,您的 Git 將不會做任何事情,因為您的 Git 不再看到他們master。如果您與他們交談并且他們根本沒有那個分支名稱,您必須告訴您的 Git ,洗掉我的副本。你會用git fetch --prune Daal-Backend. 這會讓你的 Git 向他們的 Git 詢問他們所有的分支名稱,根據需要創建或更新你的遠程跟蹤名稱,并洗掉任何過時的遺留名稱。
請注意,這一切都假設您讓您的 Git 軟體使用該名稱Daal-Backend來呼叫他們的 Git 軟體。如果您現在使用該名稱origin(如 in)git fetch origin呼叫任何其他 Git 軟體,無論它是否屬于他們的,并獲取有關另一個存盤庫的資訊,這一次您的 Git 軟體將創建和/或更新您的origin/*名稱。
所以這完全取決于你用來聯系 Git 所謂的remote的名稱。遠程只是其他 Git 存盤庫的簡稱:遠程掛在 URL 上。您將使用git remote add添加遙控git remote remove器或洗掉遙控器。該遙控器的存在,加上您正在運行,加上該遙控器上git fetch的分支名稱的存在,是導致您擁有遠程跟蹤名稱的原因。
uj5u.com熱心網友回復:
你有兩個遙控器。說git remote -v要查看串列。如果它們是同一個 URL 的兩個名稱,您可以洗掉一個。
git remote rm Daal-Backend
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/467725.html
上一篇:如何除錯gitdifftool命令(WinMerge,Windows上的git)
下一篇:一個字串行中的Git提取修改
