2011-05-18 89 views

回答

55

Git已經只能拖動當前分支。如果將分支設置爲跟蹤分支,則不需要指定遠程分支。 git branch --set-upstream localbranch reponame/remotebranch將設置跟蹤關係。然後您發出git pull [--rebase]並且只有該分支將被更新。

當然,所有遠程跟蹤分支和遠程的所有參考都將被更新,但只有您的本地跟蹤分支會被修改。

+0

這是正確的,也許有點奇怪,因爲「git push」(默認)嘗試推送所有分支(具有相同的遠程名稱)。 – 2013-09-03 13:58:05

+2

@AlessandroDs嗯,我爲此設置push.default爲上游。 push.default的新默認值是「簡單」,它再次只更新當前分支,所以與pull相比更加平行。 – 2013-09-04 03:50:29

+0

@SethRobertson:謝謝你的回答,你能詳細說明最後一部分嗎?通過修改,你的意思是變化不會從遠程回購中被取消嗎?我們發現每個人都有100MB左右的分支,當我們做一個拉時,我們會得到幾個〜100MB的下載(基本上所有分支)。 – danjah 2014-10-09 21:22:46

28

我只是做了這種方式:

git pull origin "$(git branch | grep -E '^\* ' | sed 's/^\* //g')" 

git pull origin $(git rev-parse --abbrev-ref HEAD) 

這種提取從git branch當前分支,和拉動從遠程起源分支。

請注意,就像Seth Robertson說的那樣,當沒有參數給出時,只修改當前分支但是所有遠程分支都被獲取。我不想獲取所有的遠程分支,所以我這樣做了。

+0

有點棘手...但工程。 +1 – shashwat 2014-12-26 09:20:34

+1

'git branch'不應該被分析信息。這個信息可以通過'git rev-parse'命令來實現:'git pull origin $(git rev-parse --abbrev-ref HEAD)' – 2016-08-09 13:24:22

+0

@ayke我加了Paul DelRe,因爲它也可以工作,我希望你們都不介意 – 2016-11-11 15:00:37

16

嘗試此混帳的新版本:

$ git config --global push.default current 
+6

我不相信pull.default存在。請參閱 [git-scm](http://git-scm.com/docs/git-config.html) 或 [kernel.org](https://www.kernel.org/pub/software/scm /git/docs/git-config.html)。 – Mort 2015-06-16 13:15:24

+0

@Mort你測試了嗎?它對我有效:D – 2015-06-16 13:42:14

+2

是的。即使在上面的'pull.default = current'下,linux上的git 2.3.4也會獲取所有分支。我發現我的'git clone'默認也添加了'remote.origin.fetch = + refs/heads/*:refs/remotes/origin/*',但這非常標準。 – Mort 2015-06-18 01:35:31

3

--set-upstream標誌已過時,將被刪除。 因此,使用--track--set-upstream-to

例如: 如果要設置這個分支跟蹤信息,你可以這樣寫:

git branch --set-upstream-to=<remote>/<branch> develop 
+0

當它不知道你的跟蹤信息時,它可能會被棄用(來源?),但是'--set-upstream-to ='不斷被git提及。沒有提及棄用。 – 2017-04-03 15:13:39

+0

@AdrienGiboire下面是關於棄用的一些信息:https://jira.atlassian.com/browse/SRCTREEWIN-588 – 2017-04-05 02:40:23

+0

我的不好,我意識到我誤解了你的帖子。 – 2017-04-05 09:46:07

2

是的,有可以在.gitconfig改變一個配置,例如:

[push] 
    default = current 

這會推送當前分支以更新接收端具有相同名稱的分支。

檢查由:

git config --global --get push.default 

參見:git-config

+1

@DavidSanders刪除,謝謝。 – kenorb 2015-11-20 11:56:09