2014-11-04 122 views
3

我有我的本地回購與*主跟蹤遠程A * *主。 (遠程A的主設備是它唯一的活動分支。)Git獲取遠程分支到新的本地分支(用一個命令)

遠程B現在有一個* prbranch,它有一些額外的工作不在A/master中。我的本地回購沒有任何除A之外的任何遙控器(以及僅用於推動的我的個人遙​​控器)。

如何獲取B/prbranch到我的本地倉庫和b)創建一個具有相同名稱的新本地分支並自動更改?

git fetch B prbranch正確提取分支,但將其放入FETCH_HEAD與我必須手動創建一個類似命名的分支。

git pull B prbranch當然是沒用的,試圖合併到當前的本地分支

git clone --single-branch B prbranch只是使當前回購的子文件夾一個新的回購協議。

那麼如何獲取遠程分支並在一個命令中創建一個相同的本地分支?當然這並不難做到...

(我的經驗當然是有限的,因此,我希望答案是簡單的「追溯明顯」。)

+0

使用'git remote add'將遠程B添加爲新的遠程 – 2014-11-04 16:32:33

+0

爲什麼要這樣做?我只想要一次獲取這個任意分支,再也不使用遠程分支 – Dubslow 2014-11-04 16:50:49

+1

哦 - 只需將您的抓取改爲prBranch:prBranch,或者之後手動創建指向FETCH_HEAD的分支。 – 2014-11-04 17:17:21

回答

1

以下命令將獲取和創建沒有創建遠程跟蹤分支的本地分支:

git fetch <urlB> refs/heads/prbranch:refs/heads/prbranch 

請參閱Git Internals - The Refspec的文檔。

+0

只是prbranch:prcranch工作,正如Andrew C指出的那樣。我沒有理解refspecs的強大功能,最後一個參數不僅僅是一個分支名稱:) – Dubslow 2014-11-04 17:21:21

+0

我仍然有點希望我能做'git fetch B分支:'並讓git使用本地分支的遠程名稱名字以及...但現在我只是越來越挑剔:) – Dubslow 2014-11-04 17:22:11

+0

正確的,正如安德魯指出,至少你需要的是prbranch:prbranch遠程分支工作分支。 refspec將適用於'.git/refs'下的任何ref,所以有時最好將其拼出以避免混淆。 – 2014-11-04 17:39:32

相關問題