Gitでマージを表示および編集するための最良のツールは何ですか?「鉱山」、「彼ら」、「祖先」が別々のパネルにあり、4番目の「出力」パネルがある、3方向のマージビューを取得したいと思います。
また、上記のツールを呼び出すための手順もすばらしいでしょう。(エラーが発生しないようにkdiff3を起動する方法はまだわかりません。)
私のOSはUbuntuです。
Gitでマージを表示および編集するための最良のツールは何ですか?「鉱山」、「彼ら」、「祖先」が別々のパネルにあり、4番目の「出力」パネルがある、3方向のマージビューを取得したいと思います。
また、上記のツールを呼び出すための手順もすばらしいでしょう。(エラーが発生しないようにkdiff3を起動する方法はまだわかりません。)
私のOSはUbuntuです。
回答:
Meldは無料のオープンソースのクロスプラットフォーム(UNIX / Linux、OSX、Windows)差分/マージツールです。
インストール方法は次のとおりです。
meld
は複雑なdiffで面倒です。などのオプションを選択できることchose b for all unresolved conflicts
は、のすべてのハンクに対して正しい矢印をクリックする必要があるよりもはるかに優れていますmeld
。また、入力ファイルを適切に編集するのではなく、特定の出力ファイルにマージできることは、失敗したナージをバックアウトするために非常に重要です。
""で使用する独自のマージツールを構成できます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ファイルに実際に表示され、機能します。
私のお気に入りの Beyond Compare 3は、 Proエディションにマージ機能があります。マージの良い点は、ベース、レフト、ライト、マージされた結果の4つのビューすべてを表示できることです。P4Vよりやや視覚的ではありませんが、WinDiffよりははるかに優れています。これは、多くのソース管理と統合し、Windows / Linux上で動作します。高度なルール、エディション、手動配置などの多くの機能があります...
Perforce Visual Client(P4V)は、マージのための最も明示的なインターフェースの1つを提供する無料のツールです(いくつかのスクリーンショットを参照)。すべての主要なプラットフォームで動作します。そのツールの私の主な失望は、その種の「読み取り専用」インターフェースです。ファイルを手動で編集したり、手動で位置合わせしたりすることはできません。
PS:P4MergeはP4Vに含まれています。PERFORCEは、クライアントなしでツールを入手することを少し難しくしようとしています。
SourceGear Diff / Mergeは、私の2番目の無料のツール選択になるかもしれません。スクリーンショットのマージを確認してください。少なくとも3つのビューがあることがわかります。
メルドは私がすることを好むだろうと新しい無料のツールです SourceGearの差分/マージ:今、それはまた、ネイティブのようないくつかのソース管理支援の明確な利点を持つほとんどのプラットフォーム(Windowsの/ Linuxの/ Mac用)に取り組んだのGitを。したがって、すべてのファイルの履歴の差分をはるかに簡単にすることができます。SourceGear Diff / Mergeと同様に、マージビュー(スクリーンショットを参照)には3つのペインしかありません。これにより、複雑なケースではマージが多少難しくなります。
PS:1つのツールが5つのビューのマージをサポートしている場合、これは本当に素晴らしいことです。なぜなら、Gitでコミットをチェリーピックすると、ベースは1つではなく2つになるためです。2つのベース、2つの変更、および1つの結果のマージ。
kdiff3について良いことを聞いています。
kdiff3
はるかに多くの機能がmeld
ありますが、UIは優れています。私の意見でmeld
は、によって提供される機能でmeld
十分な簡単なマージに適しています。diffuse
も試すことを忘れないでください。
私のお気に入りのビジュアルマージツールはSourceGear DiffMergeです
Vimdiff
vimを学んだら(そしてIMHOを学べば)、vimdiffは、学ぶべきもう1つの美しい小さな直交概念です。vimでオンラインヘルプを取得するには:
:help vimdiff
この質問はそれを使用する方法をカバーしています:vimdiffを使用して競合を解決する方法
マウス使用の暗い時代に行き詰まっており、マージするファイルがあまり大きくない場合は、meldをお勧めします。
P4Mergeを試すことができます。
P4Mergeを使用してファイルバージョン間の違いを視覚化します。カラーコーディングを使用して、並行開発または同時開発から生じる競合を解決します。
機能は次のとおりです。
IntelliJ IDEAには、Resolveマジックワンドを備えた洗練されたマージ競合解決ツールがあり、マージを大幅に簡素化します。
拡散は私のお気に入りですが、もちろん私は偏っています。:-)それは非常に使いやすいです:
$ diffuse "mine" "output" "theirs"
Diffuseは、Pythonで記述された小さくシンプルなテキストマージツールです。Diffuseを使用すると、コードへの変更を簡単にマージ、編集、および確認できます。拡散はフリーソフトウェアです。
diffuse
とても素敵に見えます。私は今それを試してみただけで、それよりも差分が良くなりましたkdiff3
。しかし、私はそれを使用しようとしています、git mergetool
そしてそれは互いに隣り合って4つのファイルを開きます(ローカル、マージ結果、リモート、ベース)、そして私の画面はそのために十分に広くありません。横スクロールが多かったです。kdiff3は、互いに隣り合っている3つと、ウィンドウの下半分に結果を表示するだけです。
Araxis Merge http://www.araxis.com/merge Mac OS Xで使用していますが、Windowsで使用しました...無料ではありません...しかし、いくつかの優れた機能があります ...より良いしかし窓。
あなたが比較を超えた差分ツールを探しているだけならかなりいいです:http : //www.scootersoftware.com/moreinfo.php
したがって、gitマージでは、次のことを試すことができます。
DiffMergeは、Windows、OS X、およびLinuxでファイルを視覚的に比較およびマージします。
Meldは、視覚的な差分およびマージツールです。
opendiff
(macOSのXcode Toolsの一部)、ターミナルからFileMergeアプリケーションを起動して、マージを含むファイルまたはディレクトリをグラフィカルに比較するコマンドラインユーティリティ。git config --global merge.tool opendiff
私にとって最も効果的だった
私はここで言及されている多くのツールを試しましたが、どれも私が探しているものではありません。
個人的には、Atomは違いと競合の解決/マージを視覚化するための優れたツールであることがわかりました。
マージに関しては、3つのビューはありませんが、すべてが1つのバージョンに結合され、バージョンごとに色付きで強調表示されます。コードを直接編集するか、必要なスニペットのバージョンを使用するボタンがあります。
gitで作業するためだけに、エディターやIDEとして使用することはもうありません。UIがすっきりとしていて、非常に単純明快で、高度にカスタマイズ可能です。
コマンドラインから起動して、開きたい単一のファイルを渡すか、プロジェクトフォルダーを追加できます(git repo)。
私が持っていた唯一の問題は更新です-大規模なリポジトリで作業しているとき、アトムはそれ以外で行った変更を更新するのに時間がかかる場合があります。終了したら常に閉じて、変更/コミットを表示したいときに再び開きます。ctrl + shift + f5を使用してウィンドウをリロードすることもできます。これは1秒しかかかりません。
もちろん無料です。
ECMerge diff / mergeツールは、Linux、Mac、またはWindowsにインストールできます。これはGitで事前設定されているため、使用git mergetool
するだけで十分です。
gitx http://gitx.frim.nl/
大きなコミットセットで作業するときのいくつかのバグ。