以前調べたネタですが、ここにメモしておきます。 (最近ブログの更新が滞っていたため) gitには普通のリポジトリとbareリポジトリがあります。普通のリポジトリは、チェックアウトされたファイルを含むリポジトリで、bareリポジトリは.gitディレクトリの中身のみを含むリポジトリです。 bareリポジトリは、 % git init --bare hoge のように作ります。サーバにbareリポジトリを作って、そこにみんなでpushするような使い方は一般的でしょう。ちなみに、push先がbareリポジトリではなかったりすると、ワーニングがでたりします。 さて、例えば2つのチームがそれぞれ別々のリモートサーバを使って別のbareリポジトリにpushしていたとします。その2つのbareリポジトリを同期したいとします。bareリポジトリにはチェックアウトという概念がないので、git mergeは使え