3

私の「プロジェクト/レポ」には、2 つの MS Visual Studio プロジェクトがあり、1 つはメイン コード用で、もう 1 つはテスト用です。(コピーと貼り付けの意味で) 両方に共通するファイルがいくつかあり、それらがどれであるかを確認/確認したいと思います。

リポジトリ ツリー全体で同じコンテンツ BLOB を 2 回使用したかどうかを確認するための適切な Git コマンド (または GUI メニュー クリック) は何ですか? すべてのチュートリアルを正しく読んだ場合、git は同じファイル コンテンツの 2 つのコピーに対して単一の SHA1 を持ち、それについて既に認識しているはずです。Git に、これらの重複した使用ファイル パスを見つけて表示するコマンドがあることを願っています。

最終的には、共通の祖先ブロブ SHA1 がある場合 (ただし共通の場所ではない場合)、バージョン間の差分を見つけられるようにしたいと考えています。[つまり、テスト中に 1 つのバージョンが他のバージョンより先に更新されます...]

このような重複を行うのがベストプラクティスではないことはわかっていますが、それが作業の最終的な方法です:-(

WindowsにMsysgitとGitExtensionsがあります...

4

1 に答える 1

7

次のようなことができます

git ls-tree -r HEAD

BLOB とファイルを表示するには。

同じブロブを手動で確認したくない場合:

git ls-tree -r HEAD |
    sort -t ' ' -k 3 |
        perl -ne '$1 && / $1\t/ && print "\e[0;31m" ; / ([0-9a-f]{40})\t/; print "$_\e[0m"'

From: Git: このツリーで重複する BLOB (ファイル) を検索します

于 2011-04-25T21:21:15.163 に答える