問題タブ [git-difftool]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
61 参照

git - meld (または別の difftool / mergetool) を使用して、git の 2 つの無関係なリポジトリ (リモート) 間の変更を選択的に統合するにはどうすればよいですか?

バックグラウンド

公開リポジトリから複製したプライベート リポジトリがあります (両方とも github でホストされています)。変更をパブリック リポジトリからプライベート リポジトリに選択的にマージする必要があります (単純にgit pull.

実用的であれば、この目的のためにメルドツールを使用したいと考えていますが、実行可能なすべての代替手段を受け入れます。

(複製はここの Github のドキュメントに従って作成されました。2 つのリポジトリを比較するための 2 つ目のリモートの追加は、ここ2nd_remoteの iamamac の回答に従って行われました。メルドの構成は、ここのマットストの優れたガイドに従って行われました。)

参考までに、ここに私の正確なグローバル git ツール構成を示します。

問題

このセットアップは、次のように差分を表示する場合にうまく機能します。メルドgit difftool origin/main 2nd_remote/main の出力/表示は期待どおりで、各リポジトリの指定されたブランチ間のすべての違いが表示されます。

ただし、は一時ファイルを使用しているため、これらの差分に基づいてメルドdifftoolに変更を加えて保存するのは簡単ではありません (方法が明らかではありません) 。 私がやりたいことは、変更の管理と保存が簡単な meld のセットアップを使用することです。
mergetool

ただし、マージの競合を引き起こす必要があるテスト変更を行い(たとえば、両方のリポジトリで同じ行に別の追加を追加)、リモートを更新すると、次のようになりgit mergetool origin/main 2nd_remote/mainます。 No files need merging

私の目標

上記の状況を考えると、次の解決策のいずれかに到達する必要があると思います。

  1. difftool一時ファイルではなく「実際の」ファイルに簡単に保存できるメルドの変更方法を理解してください。また
  2. mergetoolこの 2 つのリモート セットアップで作業を開始する

しかし、私が完全に間違ったツリーに吠えており、別のより良い方法がある場合は、間違いなくそれについて聞きたいと思っています。すべてのガイダンスは大歓迎です!