ライブ サイトをミラーリングするための git リポジトリを作成しました (これはベアでない git リポジトリです)。
git clone --mirror ssh://user@example.com/path/to/repo
さて、このミラー クローンをリモートのオリジンからのすべての変更で最新の状態に保つには、どのコマンドを使用する必要がありますか?
コミット、参照、フック、ブランチなど、すべてを最新の状態に保ちたいと思います。
ありがとう!
ライブ サイトをミラーリングするための git リポジトリを作成しました (これはベアでない git リポジトリです)。
git clone --mirror ssh://user@example.com/path/to/repo
さて、このミラー クローンをリモートのオリジンからのすべての変更で最新の状態に保つには、どのコマンドを使用する必要がありますか?
コミット、参照、フック、ブランチなど、すべてを最新の状態に保ちたいと思います。
ありがとう!
これは、ミラーで実行する必要があるコマンドです。
git remote update
コミット、参照、ブランチ、および「その他」に関して、Magnus の回答は機能します ( git remote update
)。
しかし、残念ながら、私が望んでいたように、フックclone
を/ ミラーリング /する方法はありません...update
フックの複製/ミラーリングに関する非常に興味深いスレッドを見つけました。
http://kerneltrap.org/mailarchive/git/2007/8/28/256180/thread
私は学んだ:
フックは、リポジトリ コンテンツの一部とは見なされません。
.git/description
フックと同様に、複製されないフォルダーのようなデータが他にもあります。
ディレクトリに表示されるデフォルトのフックはhooks
、TEMPLATE_DIR
template
git にはこの興味深い機能があります。
したがって、この「フックのクローンを作成する」ことを無視するかrsync
、ミラーの目的 (バックアップ + 他のクローンのソースのみ) を考慮して、戦略を立てることができます。
ええと... フックのクローン作成のことは忘れて、この方法に固執しgit remote update
ます。
clone
Sehe は、「フック」が/update
プロセスによって管理されないだけでなく、stash、rerere なども管理されないことを指摘しましたrsync
。私の場合、これは実際には必要ないので (フックやスタッシュなどを持たない余裕があります)、私が言ったように、remote update
.ありがとう!私自身の「git-fu」を少し改善しました... :-)
ここを参照してください:Gitは後続のクローンですべてのブランチをクローンしませんか?
の代わりにブランチをプルしてこれが本当に必要な場合はpush --mirror
、ここを参照してください。
gitベアリポジトリの「fetch--all」は、ローカルブランチをリモートブランチに同期しません
この回答は、それを比較的簡単に達成する方法の詳細な手順を提供します。