1

何らかの理由で、中央リポジトリへのミラー リポジトリを作成する必要があります。

中央リポジトリ <-----> ミラー リポジトリ <-----> 開発リポジトリ

リスクは、ミラー リポジトリをプッシュすると、中央リポジトリの履歴が上書きされる可能性があることです。

誰か (Mr J) が新しいコミット (commit_X) を中央リポジトリにプッシュし、同時にミラーがフェッチなしでプッシュしようとすると、このプッシュは中央リポジトリの履歴を上書きします。その結果、commit_X が削除されます。

Mr J は、もう一度 commit_X をプル、マージ、プッシュする必要があります。

根本的な原因は、リポジトリが で作成された場合、後でclone --mirror追加されなくてもデフォルトでpush暗黙的に使用されることです。--mirrorpush

push --mirrorセントロールリポジトリ側で無効にするフックスクリプトをインストールできることは知っています。

しかし、ミラーリポジトリ側で無効にする方法はありますか?

[EDIT1]この質問を理解するのに役立つ図を追加しました。

ここに画像の説明を入力

4

1 に答える 1

0

で説明されているように、あなた.git/configと unsetを編集するだけです:remote.<remote>.mirrorgit help push

--mirror
プッシュする各参照に名前を付ける代わりに、refs/ (refs/heads/、refs/remotes/、および refs/tags/ を含むがこれらに限定されない) の下のすべての参照をリモート リポジトリにミラーリングすることを指定します。新しく作成されたローカル参照はリモート エンドにプッシュされ、ローカルで更新された参照はリモート エンドで強制的に更新され、削除された参照はリモート エンドから削除されます。これは、構成オプション remote..mirror が設定されている場合のデフォルトです。

于 2013-07-04T03:38:17.820 に答える