2017-04-15 66 views
2

如何從本地分支獲取遠程名稱?從本地分支獲取遠程名稱

請注意,我不想要遠程跟蹤分支名稱,而只是遠程名稱。

考慮這個人爲的例子。我如何獲得prefix/github

$ git status -b 
## dev...prefix/github/rm/dev 

$ git remote 
github 
prefix 
prefix/github 

所以prefix/github是遠程和本地分支dev正在跟蹤遠程分支rm/dev

到目前爲止,我知道這種方式,但它不是全面的。

$ git rev-parse --abbrev-ref @{u} 2>/dev/null | cut -d'/' -f1 
prefix 

prefix/github遠程名稱是故意的。我可以住在保持我的遠程沒有正斜槓(在這種情況下,上述將工作),但想知道我是否失去了一些東西。我有一個bash腳本,最終會使用這個腳本。

更新:

請參閱此評論爲什麼這個問題是不是欺騙: Get remote name from local branch

+0

您是否想知道跟蹤本地分支的遠程分支在哪裏? – merlin2011

+0

是的。所以在上面的例子中,我需要獲得'prefix/github'這是遠程名稱。 – hIpPy

+0

http://git-wt-commit.rubyforge.org/直接或複製它正在做的事情。 – bishop

回答

1

This Works。

git config --get branch.dev.remote 

本地混帳配置文件(.git/config)應該有這樣的branch部分:

[branch "dev"] 
    remote = prefix/github 
    merge = refs/heads/dev 

我很誠實地驚訝正是這種人爲的。

+0

我不確定你的意思是*作了些什麼,但是由於歷史原因,這是這種方式。請參閱http://stackoverflow.com/a/42033047/1256452瞭解更多。 (我確信我已經在其他地方寫了「更多更多」,但無法很快找到它。) – torek

+0

@torek,啊我明白了。我認爲這應該是通過'git branch'或'git remote'而不是'git config'(這不直觀)。 – hIpPy

+0

今天的用戶導向瓷器試圖掩蓋這樣一個事實,即這些東西有兩個部分。這是否是一個好的設計決定完全是另一個問題。同時,管道密碼充滿了歷史古怪。 :-) – torek

0

你正在尋找一個分支您設置跟蹤後存儲在.git/config文件中的信息。您應該能夠從中輕鬆提取它(例如,grep -B ... | grep ... - 請在查看該文件後自行填寫點)。

請注意,在那裏可以存在沒有遠程跟蹤信息的分支。

相關問題