web-dev-qa-db-ja.com

Gitに最適なビジュアルマージツールは何ですか?

Gitでマージを表示および編集するための最適なツールは何ですか?別々のパネルに "mine"、 "theirs"、 "ancestor"、そして4番目に "output"パネルがある3方向のマージビューが欲しいのですが。

また、このツールを起動するための指示は素晴らしいでしょう。 (kdiff3を起動してもエラーにならないような方法で起動する方法はまだわかっていません。)

私のOSはUbuntuです。

538
andy

Meld はdiff/mergeツールです。

これをインストールする方法は次のとおりです。

310
user20805

あなたは "git mergetool"で使用するためにあなた自身のマージツールを設定することができます。

例:

  git config --global merge.tool p4merge
  git config --global mergetool.p4merge.cmd p4merge '$BASE $LOCAL $REMOTE $MERGED'
  git config --global mergetool.p4merge.trustExitCode false

そしてあなたがそれを見ている間に、あなたはそれを "git difftool"のためのあなたのdifftoolとして設定することもできます。

  git config --global diff.tool p4merge
  git config --global difftool.p4merge.cmd p4merge '$LOCAL $REMOTE'

Unix/Linuxでは$BASEをあなたのシェルが変数としてパースすることを望まないことに注意してください - 実際には〜/ .gitconfigファイルに現れるべきです。

84
Evgeny

Beyond Compare 3 、私のお気に入りは、Pro editionmerge という機能があります。マージの良いところは、ベースビュー、左ビュー、右ビュー、マージ結果の4つのビューすべてを表示できることです。見た目はP4Vよりもやや見た目が劣りますが、WinDiffよりはずっとわかりやすいです。それは 多くのソース管理と統合 そしてWindows/Linux上で動作します。それは高度なルール、エディション、手動整列などの多くの機能を持っています...

Perforceビジュアルクライアント P4V は、マージのための最も明示的なインタフェースの1つを提供する無料のツールです( いくつかのスクリーンショット を参照)。すべての主要プラットフォームで動作します。そのツールと私の主な失望はそのような"read-only" interfaceです。手動でファイルを編集したり、手動で位置合わせしたりすることはできません。

PS:P4MergeはP4Vに含まれています。 Perforceは、クライアントなしでツールを入手するのを少し難しくします。

SourceGear Diff/Merge が私の2番目の無料ツールの選択かもしれません。マージ スクリーンショット をチェックすると、少なくとも3つのビューがあることがわかります。


Meldは、私が好む新しい無料ツールです。{SourceGear Diff/Merge:今では、ほとんどのプラットフォーム(Windows/Linux/Mac)でも異なる機能を果たしています。 Gitのようなソース管理をネイティブにサポートする利点。それで、あなたはずっと簡単にすべてのファイルに若干の歴史差分を持つことができます。マージビュー( スクリーンショット を参照)には、SourceGear Diff/Mergeのように3つのペインしかありません。これは複雑な場合にマージをいくらか難しくします。

PS:あるツールが 5ビューマージ をサポートしているのなら、これは本当に素晴らしいことです。Gitでコミットをチェリーピックするのであれば、1つではなく2つのベースがあるからです。 2つの基本、2つの変更、および1つの結果としてのマージ。

61
Wernight

私のお気に入りのビジュアルマージツールは SourceGear DiffMerge です。

  • これは無料。
  • クロスプラットフォーム(Windows、OS X、およびLinux).
  • きれいなビジュアルUI
  • あなたが期待するすべての差分機能(差分、マージ、フォルダ差分)。
  • コマンドラインインターフェース.
  • 使用可能なキーボードショートカット.

User interface

41
Luke

私はkdiff3について良いことを聞きました。

34
Mike F

ビムディフ

あなたがvim(そして私があなたがすべきである)を学んだら、vimdiffは学ぶべきもう一つの美しい小さな直交概念です。 vimでオンラインヘルプを入手するには

:help vimdiff

あなたがマウス使用の暗い時代に行き詰まっていて、あなたがマージしているファイルがそれほど大きくないならば、私はmeldを推薦します。

23
Andrew Wagner

P4Merge を試すことができます。

P4Mergeを使用してファイルバージョン間の違いを視覚化します。色分けによる並列開発または同時開発から生じる競合を解決します。

機能は次のとおりです。

  • テキストファイルの違いを強調表示して編集する
  • 行末または空白を含めるか無視するかを選択
  • Windows(CRLF)、Mac(CR)、およびUnix(LF)の改行規則を認識します。
  • コマンドラインパラメータを使用してPerforce以外のアプリケーションから起動する
  • ファイルを比較およびマージするときに行番号を表示する
  • 変更された、一意の、または変更されていないファイルを除外する
  • ファイルを名前または拡張子でフィルタする
  • 変更されたアセットを使い慣れたファイル/フォルダ階層に整理する
  • JPEG、GIF、TIFF、BMP、およびその他のファイル形式を比較する
  • Qt APIを使って拡張する
  • 画像を重ねる、または並べて表示する
  • オーバーレイ画像の違いを強調する
22
Ron

Diffuse は私のお気に入りですが、もちろん私は偏っています。 :-)とても使いやすいです。

$ diffuse "mine" "output" "theirs"

DiffuseはPythonで書かれた小さくてシンプルなテキストマージツールです。 Diffuseを使用すると、コードへの変更を簡単にマージ、編集、および確認できます。びまん性はフリーソフトウェアです。

15
Derrick Moser

IntelliJ IDEA は洗練された マージ競合解決ツール Resolveマジックワンドを使用してマージを簡単にします。

Source: https://blog.jetbrains.com/dotnet/2017/03/13/rider-eap-update-version-control-database-editor-improvements/

12
niutech

Araxis Merge http://www.araxis.com/merge Mac OS Xではこれを使用していますが、Windowsでは使用しています...無料ではありません...しかし一部のバージョンはあります Nice特徴 ...でもWindows上ではより良い.

12
Clintm

git mergetool -t=<tool>または--tool=<tool>を渡すことでgit mergetoolで使用されるツールを変更できます。デフォルトを変更するには(vimdiffから)git config merge.tool <tool>を使います。

7
user35149

あなたが単に比較を超えた差分ツールを探しているならば、かなりいいです: http://www.scootersoftware.com/moreinfo.php

7
Nathan Feger

私はここで述べたツールをたくさん試しましたが、どれも私が探しているものではありませんでした。

個人的には、私は Atom が違いや競合解決/マージを視覚化するための素晴らしいツールであることを発見しました。

マージに関しては、3つのビューはありませんが、バージョンごとに色分けされた強調表示ですべて1つにまとめられています。あなたは直接コードを編集することができますまたはあなたが望むそのスニペットのバージョンを使用するためのボタンがあります。

私はgitを使うためだけに、これをエディタやIDEとして使うことすらありません。きれいなUIと非常に簡単な、そしてそれは高度にカスタマイズ可能です。

  • コマンドラインから起動して開きたいファイルを1つ渡すか、プロジェクトフォルダを追加することができます(git repo)。

    • ツリービューをいっぱいにすることなくプロジェクト間を移動するための非常に便利な方法として、 project-manager をお勧めします。
  • 私が抱えていた唯一の問題はさわやかなことです - 大きなリポジトリアトムを扱うとき、アトムはあなたがそれの外で行った変更を更新するのに遅くなる可能性があります。作業が終わったらいつも閉じて、変更を見たりコミットしたりしたいときはもう一度開きます。ウィンドウをctrl + shift + f5でリロードすることもできます。

そしてそれはもちろん無料です。

2
Sean McCallum

それで、gitマージのために、あなたは試すことができます:

  • DiffMerge Windows、OS XおよびLinux上のファイルを視覚的に比較してマージします。

    DiffMerge

  • Meld は、視覚的なdiffとmergeのツールです。

    Meld is a visual diff and merge tool

  • KDiff3 、2つまたは3つのテキスト入力ファイル/ディレクトリを比較またはマージするdiff and mergeプログラム)。
  • opendiff (macOS上のXcode Toolsの一部) - ターミナルからFileMergeアプリケーションを起動してファイルまたはディレクトリをグラフィカルに比較するコマンドラインユーティリティ。 マージ
1
kenorb

あなたのLinux、MacまたはWindowsに ECMerge diff/merge tool をインストールすることができます。これはGitで事前設定されているので、git mergetoolを使うだけでうまくいきます。

1
Armel

マージと比較のために異なるツールを使用します。

git config --global diff.tool diffuse
git config --global merge.tool kdiff3

拳は以下によって呼ばれることができました:

git difftool [BRANCH] -- [FILE or DIR]

git mergetoolを使用するとSecondが呼び出されます。

1
ephemerr

visual studio を使用する場合は、チームエクスプローラに組み込まれているツールは、gitマージの競合を解決するための非常に優れたツールです。

0
Charith