首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何轻松地将本地Git分支推送到不同名称的遥控器?

如何轻松地将本地Git分支推送到不同名称的遥控器?
EN

Stack Overflow用户
提问于 2011-04-21 10:19:09
回答 5查看 100.4K关注 0票数 209

我一直在想,是否有一种简单的方法来推送和拉出具有不同名称的远程分支的本地分支,而不必总是同时指定两个名称。

例如:

代码语言:javascript
复制
$ git clone myrepo.git
$ git checkout -b newb
$ ...
$ git commit -m "Some change"
$ git push origin newb:remote_branch_name

现在,如果有人更新remote_branch_name,我可以:

代码语言:javascript
复制
$ git pull

所有的东西都被合并/快进了。但是,如果我在本地的"newb“中进行更改,我就不能:

代码语言:javascript
复制
$ git push

相反,我必须:

代码语言:javascript
复制
% git push origin newb:remote_branch_name

看起来有点傻。如果git-pull使用git-config branch.newb.merge来决定从哪里拉,为什么git-push不能有类似的配置选项?有没有一个很好的捷径,或者我应该继续走很长的路?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-04-21 11:00:52

好的。只需将push.default设置为upstream即可将分支推送到其上游(这与pull将从其拉取的分支相同,由branch.newb.merge定义),而不是将分支推送到名称匹配的分支(这是push.default的默认设置,matching)。

代码语言:javascript
复制
git config push.default upstream

请注意,在Git1.7.4.2之前,它被称为tracking而不是upstream,所以如果你使用的是旧版本的Git,请改用trackingpush.default选项是在Git1.6.4中添加的,所以如果你使用的是比这个更早的版本,你将根本没有这个选项,并且需要显式地指定要推送到的分支。

票数 102
EN

Stack Overflow用户

发布于 2011-04-21 13:44:26

在执行初始推送时,添加the -u parameter

代码语言:javascript
复制
git push -u origin my_branch:remote_branch

随后的推送将到达您想要的任何位置。

编辑:

根据评论,这只设置了pull。

代码语言:javascript
复制
git branch --set-upstream

应该做这件事。

票数 202
EN

Stack Overflow用户

发布于 2014-11-28 19:22:19

Adam的命令现在已弃用。您可以使用:

代码语言:javascript
复制
git branch --set-upstream-to origin/my_remote_branch my_local_branch

my_local_branch的上游分支设置为origin/my_remote_branch

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5738797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档