配置本地分支以推送到特定分支

Sen*_*mar 15 git git-push remote-branch git-config git-branch

对不起,如果已经提出这个问题了.

我从一个名为"git_lab"的repo克隆,它有一个名为"test"的分支.克隆时我使用"-b myname_test"创建一个名为"myname_test"的本地分支,本地克隆名为"myname_git_lab"

当我执行"git pull"时,它会自动获取并合并从"test"到"myname_test"的更改,但是对于git push,我需要指定repo和branch名称.

$> git remote show git_lab

为'git pull'配置的本地分支:myname_test与远程测试合并

有没有办法我可以配置"为'git push'配置的本地分支",这样我就不需要指定分支和repo名称?

Cas*_*bel 26

你可以在这做两件事.

  • 设置push.defaulttracking,以便它将所有分支推送到它们跟踪的远程分支,而不是它们具有相同名称的分支,然后使用适当的跟踪信息配置您的分支.(例如设置branch.master.remoteoriginbranch.master.mergerefs/heads/foo).

  • 手动推动.git push origin master:foo将您的本地master分支推送到foo远程分支origin.

但是,我建议你真正想做的就是让分支名称相同.

(您可以使用git config,例如git config push.default tracking,或直接编辑.git/config文件来设置配置参数.)

  • "git config push.default tracking"工作....感谢很多,只是好奇地知道....为什么我们需要指定这个配置设置,我想当我们克隆使用-b选项时,一切都已设置.(自动克隆后设置branch.master.remote和branch.master.merge) (2认同)
  • git branch --set-upstream 怎么样? (2认同)
  • @CurtSampson:阅读我答案的第一条,以及我对 Adam 的评论。如果您像我所说的那样将 Push.default 设置为跟踪,它*确实*会更改分支推送的内容。说它只设置上游本地跟踪分支是有误导性的;它设置一个与远程分支相对应的跟踪分支,“pull”会从该远程分支获取数据,而“push”如果这样配置,则会推送到该远程分支。 (2认同)