簡體   English   中英

為什么在命令git branch之后我看到origin / master而不是master

[英]Why after command git branch I see origin/master instead of master

我的同伴試圖從git分支克隆源。 當我在他的機器“ git branch”上嘗試時,它輸出:origin / master。 我已經克隆了相同的源,但是在git branch之后,我總是看到輸出:master。 我讀到origin / master表示遠程分支,但我不明白為什么他會看到遠程分支而不是本地分支。 問題原因可能是什么?

這很可能是由於引用的歧義消除所致,因為可以命名本地分支的起源/母版。

有關詳細信息,請參見Git修訂文檔 。但是,總結起來,在解析參考時,它會依次檢查以下位置並返回第一個匹配項:

$GIT_DIR/<refname>
$GIT_DIR/refs/<refname>
$GIT_DIR/refs/tags/<refname>
$GIT_DIR/refs/heads/<refname>
$GIT_DIR/refs/remotes/<refname>
$GIT_DIR/refs/remotes/<refname>/HEAD

在您朋友的存儲庫中查找,您將找到此文件$GIT_DIR/refs/heads/origin/master 如果是這樣,那么一切都可以正常工作,而他只是得到了一個含糊的參考。 他將希望更改其本地分支名稱以消除歧義,因此消除歧義不會出現意外問題。

當您鍵入git checkout -b origin/master而不是git checkout -b master origin/master時,通常會在結帳時發生

附帶說明一下,您的本地分支名稱只是指向提交的指針,因此,它的名稱(只要它沒有歧義)實際上並不重要。 推送到遠程服務器時,您將根據本地分支機構的遠程設置更新遠程服務器的分支機構,因此您的本地分支機構名稱將永遠不會被其他任何人看到。

我認為答案很簡單,您的朋友已簽到由大師主持的起源/大師。 執行cmd:

git branch --all

在顯示的分支列表中,嘗試找到master分支,如果沒有這樣的分支,只需簽出該分支即可

git checkout master

然后從本地副本中刪除原始文件/母版

git branch -D origin/master

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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