160

ライブ サイトをミラーリングするための git リポジトリを作成しました (これはベアでない git リポジトリです)。

git clone --mirror ssh://user@example.com/path/to/repo

さて、このミラー クローンをリモートのオリジンからのすべての変更で最新の状態に保つには、どのコマンドを使用する必要がありますか?

コミット、参照、フック、ブランチなど、すべてを最新の状態に保ちたいと思います。

ありがとう!

4

3 に答える 3

238

これは、ミラーで実行する必要があるコマンドです。

git remote update
于 2011-05-27T11:12:19.780 に答える
8

コミット、参照、ブランチ、および「その他」に関して、Magnus の回答は機能します ( git remote update)。

しかし、残念ながら、私が望んでいたように、フックcloneを/ ミラーリング /する方法はありません...update

フックの複製/ミラーリングに関する非常に興味深いスレッドを見つけました。

http://kerneltrap.org/mailarchive/git/2007/8/28/256180/thread

私は学んだ:

  • フックは、リポジトリ コンテンツの一部とは見なされません。

  • .git/descriptionフックと同様に、複製されないフォルダーのようなデータが他にもあります。

  • ディレクトリに表示されるデフォルトのフックはhooksTEMPLATE_DIR

  • templategit にはこの興味深い機能があります。

したがって、この「フックのクローンを作成する」ことを無視するかrsync、ミラーの目的 (バックアップ + 他のクローンのソースのみ) を考慮して、戦略を立てることができます。

ええと... フックのクローン作成のことは忘れて、この方法に固執しgit remote updateます。

  • cloneSehe は、「フック」が/updateプロセスによって管理されないだけでなく、stash、rerere なども管理されないことを指摘しましたrsync。私の場合、これは実際には必要ないので (フックやスタッシュなどを持たない余裕があります)、私が言ったように、remote update.

ありがとう!私自身の「git-fu」を少し改善しました... :-)

于 2011-05-27T14:55:21.473 に答える
5

ここを参照してください:Gitは後続のクローンですべてのブランチをクローンしませんか?

の代わりにブランチをプルしてこれが本当に必要な場合はpush --mirror、ここを参照してください。

gitベアリポジトリの「fetch--all」は、ローカルブランチをリモートブランチに同期しません

この回答は、それを比較的簡単に達成する方法の詳細な手順を提供します。

于 2011-05-27T11:56:38.987 に答える