2011-05-18 76 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