[解決済み] WindowsでのGit。mergetoolはどのようにセットアップするのですか?
質問
CygwinでmsysGitとGitを試したことがあります。どちらもそれ自体としては問題なく動作し、gitkとgit-guiも完璧に実行できます。
さて、マージツールを設定するには一体どうしたらいいのでしょうか?(VimdiffはCygwinで動作しますが、できればWindowsを愛する同僚のためにもう少しユーザーフレンドリーなものが欲しいです)。
解決方法は?
Charles Bailey の回答のフォローアップとして、私の git セットアップを紹介します。 p4merge (無料のクロスプラットフォーム 3way マージツール); msys Git (Windows) のインストールでテストしました。
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'
または、Windowsのcmd.exeシェルからだと、2行目は.になります。
git config --global mergetool.p4merge.cmd "p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
変更点(チャールズ・ベイリーとの相対的な関係)。
- グローバルな git の設定に追加されました。
- カスタムツールの設定値は "mergetool.[tool].cmd" にあり、 "merge.[tool].cmd" にはない(愚かにも、なぜ存在しないツールについて git が不満を言い続けるのかトラブルシューティングを1時間かけてやってしまった)。
- すべてのファイル名に二重引用符を追加し、スペースを含むファイルをマージツールで検出できるようにしました(Powershell から msys の Git でテストしました)。
- デフォルトでは、Perforce はそのインストールディレクトリを PATH に追加するので、コマンドで p4merge のフルパスを指定する必要はないことに注意してください。
ダウンロードする http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
EDIT (2014年2月)
のご指摘のとおりです。 グレゴリー・パコシュ(@Gregory Pakosz 最新の msys git をネイティブでサポートするようになりました。 p4merge (テスト対象は 1.8.5.2.msysgit.0 ).
実行することで対応ツールの一覧を表示することができます。
git mergetool --tool-help
と表示されるはずです。 p4merge のどちらかに 使用可能 または 有効 のリストが表示されます。そうでない場合は、gitを更新してください。
もし p4merge と表示されました。 使用可能 であれば、それはあなたの パス を設定するだけです。 merge.tool :
git config --global merge.tool p4merge
と記載されていた場合 有効 を定義する必要があります。 mergetool.p4merge.path。 に加えて merge.tool :
git config --global mergetool.p4merge.path c:/Users/my-login/AppData/Local/Perforce/p4merge.exe
- 上記は、p4merge がシステム全体ではなく、現在のユーザーに対してインストールされた場合のパスの例です(管理者権限や UAC の昇格は必要ありません)。
-
ただし
~
は現在のユーザのホームディレクトリに展開されるはずです (ですから、理論的にはパスは~/AppData/Local/Perforce/p4merge.exe
)、これは私の場合うまくいきませんでした -
さらに良い方法は、環境変数を利用することです(例.
$LOCALAPPDATA/Perforce/p4merge.exe
), git はパスの環境変数を展開しないようです (これを動作させる方法をご存知でしたら、教えていただくか、この回答を更新してください)
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git で、ステージされていない変更を破棄するにはどうしたらいいですか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] テスト
-
[解決済み】バッチ内のファイル名、ディレクトリ名、またはボリュームラベルの構文が正しくない
-
[解決済み】ファイルパスの「♪」と「♪」の違いは何ですか?
-
[解決済み] Windowsの能書きは?
-
[解決済み] ssh_dispatch_run_fatal:message authentication code incorrect unable to ssh jupyter notebook on remote server.入力のMACが破損している。
-
Windows2008 スケジュールタスク、エラー追加データ。エラーの値: 2147750687。
-
[解決済み] Windowsネイティブアプリケーションを作るには?[クローズド]
-
[解決済み] Git リポジトリでのマージの衝突を解決するには?
-
[解決済み] Gitのビジュアルマージツールとして最適なものは?[クローズド]
-
[解決済み] Gitのための良い(無料の)ビジュアルマージツールは何ですか?(Windowsの場合) [終了しました].