2016-09-17 81 views
-2

只想在這裏仔細檢查幾件事:有沒有辦法將遠程分支機構帶到本地使用拉?

1)所以git pull --rebase會從遠程主服務器上獲取更改,但它不會拉任何遠程分支,對吧?我試圖做到這一點,遠程分支沒有出現在我的本地分支列表中,因爲我認爲它會帶來遠程站點的所有內容。

2)要拉遠程分支機構在本地工作,我應該使用fetch,然後簽出,對吧?

3)有沒有辦法拉本地拉遠程分支?

回答

1

1)...它不會拉任何遠程分支,對不對?

除了從一個查出來,是正確的,但它將作爲跟蹤分支<remote>/<branch>例如fetch所有遠程的分支機構origin/master,然後merge您當前已經使用您設置要遠程分支簽出的本地分支,無論是顯式還是默認分支。

你可以看到本地和跟蹤分行的一個完整的列表:

git branch -avv 

2)拉遠程分支機構對他們的工作地方,我應該使用遵循獲取由結賬,對不對?

是的,如果您還沒有本地分支,然後checkout將創建它。但是,如果你有一個,那麼你會後checkout

3需要merge(或pull))有沒有辦法拉遠程分支機構在本地使用拉?

是的,我能想到的最簡單的方法是創建一個將checkout所有分支,但是你真的不希望這樣做,我認爲一個別名。急於加載所有本地分支機構並沒有真正的優勢,因此只要在實際準備就緒時檢查它們即可。

2

git pull從遠端拉出分支。

git pull默認爲git fetch && git merge

git pull --rebase只是在將來自上游分支的更改合併到當前分支之前重新綁定您的代碼。 Git將執行此rebase而不是合併。小心這個,因爲如果你不小心,你可以把事情搞砸。

要在遠程分支上工作,您可以git fetch && git checkout來檢出本地版本的遠程分支。由於git pull只是git fetch && git merge,git pull也可以代替git fetch,但如果上游分支的提示位於工作分支的尖端之前,則最終可能會導致對repo的奇怪更改。

最重要的是,git fetch將從遠程讀取所有分支,除非您指定一個,並通過擴展git pull也會這樣做的。

+2

作爲附錄。任何剛剛拉出的遠程分支都不會在'git branch --list'輸出中顯示,直到它們首次被檢出爲止。要顯示所有分支的本地和遠程列表,請使用'git branch --list -r' – Mchl

+1

或'git branch -rvv' –