0

2つのリモートを持つローカルgitリポジトリがあります(「origin」は内部開発用で、「other」は外部請負業者が使用するためのものです)。私のローカルリポジトリのマスターブランチは、「origin」のマスターを追跡します。これは正しいです。「other」のマスターを追跡する「external」ブランチもあります。私が今抱えている問題は、私のマスターブランチも「その他」のマスターにプッシュしたいということです。これは問題です。ローカルマスターが他の/マスターにプッシュしないように指定する方法はありますか?

私はすでに.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すればその答えが得られます。

EDIT:それを自動的に行うには、おそらく追跡を設定する必要があります.https://mislav.net/2010/07/git-tips/を見て、に設定しください特定のブランチにもプッシュします)push.defaulttracking

それが解決することを願っています:)

于 2012-09-05T14:31:14.117 に答える