回答:
repo_a内:
git remote add -f b path/to/repo_b.git
git remote update
git diff master remotes/b/master
git remote rm b
origin/master
ではなく、指定する必要があるようですmaster
。また、これはマスターブランチ間の違いを見つけるので、異なるすべてのブランチを見つけたい場合はどうでしょうか?たとえば、リポジトリバックアップのステータスを確認しますか?
Meldはディレクトリを比較できます。
meld directory1 directory2
2つのgitリポジトリのディレクトリを使用するだけで、グラフィカルな比較ができます。
青色の項目の1つをクリックすると、変更点を確認できます。
1つのリポジトリに両方のブランチを作成したら、を実行できますgit diff
。そして、それらを1つのリポジトリーに入れるのは簡単です。
git fetch /the/other/repo/.git refs/heads/*:refs/remotes/other/*
git diff master remotes/b
不正解です。remotes/b
リモートですが、ブランチではありません。
それを機能させるために、私はしなければなりませんでした:
git diff master remotes/b/master
http://git.or.cz/gitwiki/GitTipsの「一般」の「2つのローカルリポジトリを比較する方法」のセクションを参照してください。
つまり、GIT_ALTERNATE_OBJECT_DIRECTORIES環境変数を使用して他のリポジトリのオブジェクトデータベースにアクセスし、/ GIT_DIRでgit rev-parseを使用--git-dir
して他のリポジトリのシンボリック名をSHA-1識別子に変換しています。
最新バージョンは次のようになります( 'repo_a'にいると仮定します)。
GIT_ALTERNATE_OBJECT_DIRECTORIES = .. / repo_b / .git / objects \ git diff $(git --git-dir = .. / repo_b / .git rev-parse --verify HEAD)HEAD
ここで../repo_b/.git
、repo_b内のオブジェクトデータベースへのパスです(それがベアリポジトリの場合、repo_b.gitになります)。もちろん、HEADだけでなく、任意のバージョンを比較できます。
repo_aとrepo_bが同じリポジトリーである場合は、両方を同じリポジトリーに配置する方が理にかなっていることに注意してください。 " git remote add -f ...
"を使用して、繰り返し更新するリポジトリーのニックネームを作成するか、 " "を無視しgit fetch ...
ます。他の応答で説明されています。