配置与本地名称不同的git push目标分支名称

时间:2016-08-02 13:09:30

标签: git gerrit git-push git-config

我正在使用Gerrit,当我推送提交时,我使用语法git push origin master:/refs/for/master

如果当前分支为refs/for/master,我想将Git配置为自动将当前分支推送到master。我的主张是能够继续使用git push推送到Gerrit审核服务器而不是Git服务器。

我的配置文件

[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = git@GitServer:/myrepo
[branch "master"]
        remote = origin
        merge = refs/head/master
[url "ssh://user@GerritServer:29418/myrepo.git"]
  pushInsteadOf = git@GitServer:/myrepo

注意: Gerit不处理git存储库,这就是我使用选项pushInsteadOf推送到Gerrit服务器的原因。

1 个答案:

答案 0 :(得分:1)

首先设置master的上游分支:

git push -u origin master:refs/for/master

然后将默认推送策略设置为上游:

git config push.default upstream

使用此设置,每当您编写git push时,git将检查当前分支的上游分支是什么并推送到它。这也意味着您必须为将来要推送的所有分支指定上游分支

设置上游分支不会影响拉动。实际上,这就是它被称为上游的原因,在过去它曾被称为跟踪就像拉动一样,并且引起了很多混乱。 Read on in the related commit message

Git push: set target for branch

的副本