我一直在想,是否有一种简单的方法来推送和拉出具有不同名称的远程分支的本地分支,而不必总是同时指定两个名称。
例如:
$ git clone myrepo.git
$ git checkout -b newb
$ ...
$ git commit -m "Some change"
$ git push origin newb:remote_branch_name
现在,如果有人更新remote_branch_name,我可以:
$ git pull
所有的东西都被合并/快进了。但是,如果我在本地的"newb“中进行更改,我就不能:
$ git push
相反,我必须:
% git push origin newb:remote_branch_name
看起来有点傻。如果git-pull
使用git-config branch.newb.merge
来决定从哪里拉,为什么git-push
不能有类似的配置选项?有没有一个很好的捷径,或者我应该继续走很长的路?
发布于 2011-04-21 11:00:52
好的。只需将push.default
设置为upstream
即可将分支推送到其上游(这与pull
将从其拉取的分支相同,由branch.newb.merge
定义),而不是将分支推送到名称匹配的分支(这是push.default
的默认设置,matching
)。
git config push.default upstream
请注意,在Git1.7.4.2之前,它被称为tracking
而不是upstream
,所以如果你使用的是旧版本的Git,请改用tracking
。push.default
选项是在Git1.6.4中添加的,所以如果你使用的是比这个更早的版本,你将根本没有这个选项,并且需要显式地指定要推送到的分支。
发布于 2011-04-21 13:44:26
在执行初始推送时,添加the -u parameter
git push -u origin my_branch:remote_branch
随后的推送将到达您想要的任何位置。
编辑:
根据评论,这只设置了pull。
git branch --set-upstream
应该做这件事。
发布于 2014-11-28 19:22:19
Adam的命令现在已弃用。您可以使用:
git branch --set-upstream-to origin/my_remote_branch my_local_branch
将my_local_branch
的上游分支设置为origin/my_remote_branch
。
https://stackoverflow.com/questions/5738797
复制相似问题