0

我有一个带有两个遥控器的本地 git 存储库(“origin”用于内部开发,“other”用于外部承包商使用)。我本地存储库中的 master 分支跟踪“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' 应该与 other/master 合并,但 master 永远不应该推送给 other/master。它永远不会起作用。

4

2 回答 2

1

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

于 2012-09-05T15:36:28.677 回答
0

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

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

顺便说一句,这样做git help push会给你这个答案。

编辑:要自动执行此操作,您可能想要设置跟踪,请查看:https ://mislav.net/2010/07/git-tips/并将您设置push.defaulttracking(您可能会查看配置本地分支也推送到特定的分支

我希望能解决它:)

于 2012-09-05T14:31:14.117 回答