web-dev-qa-db-ja.com

BeyondCompareを使用して、GIT内のファイル間の違いを確認します

変更をコミットする前に、GITでBeyondCompareを使用して違いを確認したいと思います。 BeyondCompareを構成して、ファイルの違いを確認するにはどうすればよいですか。

このリンク を見ましたが、役に立ちませんでした。

BeyondCompareは私のシステムのこの場所にインストールされています:C:\program files\Beyond Compare\BCompare.exe

次の2つのコマンドを実行しました。

 git config --global merge.tool bc

git config --global mergetool.bc.path "C:\program files\Beyond Compare\BCompare.exe"

Windows7でGITを使用しています。

ありがとう!

12
SharpCoder

この link は、BeyondComapreをgitのdiffツールとして設定する方法を示しています

git config --global diff.tool bc3
git config --global difftool.bc3.path "c:/program files/beyond compare 3/bcomp.exe"

Beyond Compareを使用して差分を起動するには、コマンド「git difftool foofile.txt "。

18
SharpCoder

@SharpCoderが受け入れた回答について詳しく説明します。

実行する最初のコマンドは次のとおりです。

git config --global diff.tool bc3

上記のコマンドは、.gitconfigディレクトリにある%userprofile%に以下のエントリを作成します。

[diff]
    tool = bc3

次に、以下のコマンドを実行します(このコマンドの実行は、この特定のケースでは冗長であり、一部の特殊なケースでのみ必要です。すぐにわかります):

git config --global difftool.bc3.path "c:/program files/beyond compare 3/bcomp.exe"

上記のコマンドは、.gitconfigファイルに以下のエントリを作成します。

[difftool "bc3"]
    path = c:/program files/Beyond Compare 3/bcomp.exe

ここで知っておくべきことは、キーbc3です。これは、市場で入手可能な既知の比較ツールの特定のバージョンに対応するgitのよく知られたキーです(bc3はBeyond Compareツールの3番目のバージョンに対応します)。事前定義されたすべてのキーを表示したい場合は、gitbashでgit difftool --tool-helpコマンドを実行するだけです。以下のリストを返します。

vimdiff
vimdiff2
vimdiff3
araxis
bc
bc3
codecompare
deltawalker
diffmerge
diffuse
ecmerge
emerge
examdiff
gvimdiff
gvimdiff2
gvimdiff3
kdiff3
kompare
meld
opendiff
p4merge
tkdiff
winmerge
xxdiff

上記のキーのいずれかを使用するか、独自のカスタムキーを定義できます。上記のキーのいずれにもマップされない新しいツール(またはよく知られているツールの新しくリリースされたバージョン)を完全にセットアップする場合は、上記のキーのいずれかにマップするか、new独自のカスタムキー。

比較ツールをセットアップする必要がある場合はどうなりますか

  • 市場ではまったく新しい

OR

  • gitの事前定義されたキーにマップされていない既存のよく知られたツールの新しいバージョンがリリースされました

私の場合と同様に、beyond compare 4をインストールしました。beyondcompareはgitのよく知られたツールですが、バージョン4のリリースはデフォルトで既存のキーのいずれにもマップされていません。したがって、以下のアプローチのいずれかに従うことができます。

  1. 比較4ツールを超えて既存のキーbc3にマップできます。これは、比較3バージョンを超えて対応します。私は自分のコンピューターにバージョン3を比較する以上のものがなかったので、気にしませんでした。必要に応じて、上記のリストにある事前定義されたキーのいずれかにマップすることもできます。 examdiff

    既知のバージョンのツールを適切な既存の/既知のキーにマップする場合、それらのインストールパスはgitにすでに認識されているため、2番目のコマンドを実行する必要はありません。

    例:ボックスに比較バージョン3を超えてインストールした場合は、.gitconfigファイルに以下の構成を含めるだけで十分です。

    [diff]
    tool = bc3
    

    ただし、デフォルトの関連ツールを変更する場合は、path属性を個別に指定することになり、gitは新しいツールのexeを起動する必要があるパスを知ることができます。これは、代わりに比較4を超えて起動するためにgitを起動するエントリです。 exeのパスに注意してください。

    [difftool "bc3"]
    path = c:/program files/Beyond Compare 4/bcomp.exe
    
  2. 最もクリーンなアプローチは、新しい比較ツールまたはよく知られたツールの新しいバージョンの新しいキーを完全に定義することです。私の場合と同じように、覚えやすいように新しいキーbc4を定義しました。このような場合、全部で2つのコマンドを実行する必要がありますが、2番目のコマンドは新しいツールの実行可能ファイルのパスを設定しません。代わりに、以下に示すように、新しいツールにcmd属性を設定する必要があります。

    git config --global diff.tool bc4
    
    git config --global difftool.bc4.cmd "\"C:\\Program Files\\Beyond Compare 4\\bcomp.exe\" -s \"\$LOCAL\" -d \"\$REMOTE\""
    

    上記のコマンドを実行すると、.gitconfigファイルに以下のエントリが作成されます。

    [diff]
    tool = bc4
    [difftool "bc4"]
    cmd = \"C:\\Program Files\\Beyond Compare 4\\bcomp.exe\" -s \"$LOCAL\" -d \"$REMOTE\"
    

今後の混乱を避けるために、アプローチ2に従うことを強くお勧めします。

6
RBT

比較を超えて、mergetoolとdiffツールがあります。とにかく両方の操作に使用できます。現在の状態と最後にコミットした状態の違いを確認したいときは、

    git diff 

高速なテキスト出力と小さな変更のために

   git difftool

複数のファイルの変更。また、gitログを実行し、コミットのハッシュ値の最初の部分をコピーして、

   git difftool (commit1) (commit2)

すべてのファイルを次々に比較します(非常に生産的で便利です)

2
user1941126

質問で参照された命令は、前回試したときに機能しましたが、git bashでコマンドを実行し、パスのバックスラッシュをスラッシュに置き換える必要があると思います。

git config --global merge.tool bc
git config --global mergetool.bc.path "C:/program files/Beyond Compare/BCompare.exe"
1
Simson