我可以保持git默认将master分支推送到所有遥控器吗?

时间:2012-09-05 14:19:25

标签: git git-push

我有一个带有两个遥控器的本地git存储库('origin'用于内部开发,'other'用于外部承包商使用)。我本地存储库中的主分支跟踪'origin'中的master,这是正确的。我还有一个“外部”分支,跟踪“其他”中的主人。我现在遇到的问题是我的主人也想要在'其他'中推送给主人,这是一个问题。有没有办法可以指定本地主人不应该推送到其他/主人?

我已经尝试更新我的.git / config文件以包含:

[branch "master"]
    remote = origin
    merge = refs/heads/master
[branch "external"]
    remote = other
    merge = refs/heads/master
[push]
     default = upstream

但是remote show仍然表明我的主人正在推动这两个遥控器:

toko:engine cmlacy$ git remote show origin
Password: 
* remote origin
  Fetch URL: <REPO LOCATION>
  Push  URL: <REPO LOCATION>
  HEAD branch: master
  Remote branches:
    master              tracked
    refresh-hook        tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)

这些都是正确的。

toko:engine cmlacy$ git remote show other
Password: 
* remote other
  Fetch URL: <REPO LOCATION>
  Push  URL: <REPO LOCATION>
  HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    external merges with remote master
  Local ref configured for 'git push':
    master pushes to master (local out of date)

最后一节是问题所在。 'external'应该与其他/ master合并,但是master永远不应该推送到其他/ master。它永远不会工作。

2 个答案:

答案 0 :(得分:1)

.git/config部分push = external:master下添加参数[remote "other"]

答案 1 :(得分:0)

是的,您可以指定推送的位置,例如:

git push <remote> <local branch name>:<remote branch name>

git help push会给你答案btw。

编辑:要自动执行此操作,您可能需要设置跟踪,请查看:http://mislav.uniqpath.com/2010/07/git-tips/并将push.default设置为tracking(您可能需要查看{{3}还有)

我希望能解决它:)