2010-02-11 77 views
10

我正在使用具有空主和多分支的git回購。當我做一個git pull時,它似乎只是爲主人拉東西,但不適用於分支。如何讓git爲所有分支拉動更改

我發現自己必須爲每個分支做git checkout branch; git pull才能推送。有沒有我可以使用的命令或開關

拉和應用更改所有分支機構和主?

+0

當你拉動它時,它將所有的分支取到它們的本地拷貝(remotes/origin/...下的東西),所以你實際上並不需要每次都運行'git pull',只需要改變分支並且做git合併origin /分支。 – ebneter 2010-02-12 01:59:16

+0

可能重複的[可以「git pull --all」更新我所有的本地分支?](http://stackoverflow.com/questions/4318161/can-git-pull-all-update-all-my-local-branches ) – Chronial 2013-02-27 05:39:11

回答

7

我覺得沒有可用的命令或者因爲什麼git pull做開關 - 它獲取的變化從遠程(如git fetch)並將它們合併更改當前分支(git merge origin/master或任何你當前分支軌道)。問題不是第一部分(實際上git fetch獲取所有遠程分支的更改),但合併 - 合併衝突時應該做什麼?你只能在工作副本上合併,而不能在git對象上合併。當你開始合併時,你需要中止它或解決所有衝突並創建合併提交。

+0

+1。當然,編寫一個腳本來做這件事是微不足道的。 – ebneter 2010-02-12 01:57:50

4

您的問題不在git pull它與git push。嘗試建立的git只推到當前分支的分支正在跟蹤(如適用):

git config --global push.default tracking 

在此期間,你能推,只要你想要的,但你會得到拒絕通知分支機構不會快速推進。那些往往是你沒有工作的分支,所以不太在意。

當你不指定推送內容時,上面的配置會給你一些更明智的行爲。

+0

不錯!我不知道push.default配置選項。 git-push的手冊頁提供了一個備用但類似的解決方案:git config remote.origin.push HEAD – 2010-11-16 18:19:53