バックグラウンド
公開リポジトリから複製したプライベート リポジトリがあります (両方とも github でホストされています)。変更をパブリック リポジトリからプライベート リポジトリに選択的にマージする必要があります (単純にgit pull
.
実用的であれば、この目的のためにメルドツールを使用したいと考えていますが、実行可能なすべての代替手段を受け入れます。
(複製はここの Github のドキュメントに従って作成されました。2 つのリポジトリを比較するための 2 つ目のリモートの追加は、ここ2nd_remote
の iamamac の回答に従って行われました。メルドの構成は、ここのマットストの優れたガイドに従って行われました。)
参考までに、ここに私の正確なグローバル git ツール構成を示します。
[merge]
tool = meld
[diff]
tool = meld
[difftool "meld"]
cmd = meld "$LOCAL" "$REMOTE"
[mergetool "meld"]
# order of $VARS indicates order that panes display
cmd = meld "$REMOTE" "$MERGED" "$LOCAL" --output "$MERGED"
[mergetool]
# to avoid accumulating cruft
keepBackup = false
[core]
trustctime = false
問題
このセットアップは、次のように差分を表示する場合にうまく機能します。メルドgit difftool origin/main 2nd_remote/main
の出力/表示は期待どおりで、各リポジトリの指定されたブランチ間のすべての違いが表示されます。
ただし、は一時ファイルを使用しているため、これらの差分に基づいてメルドdifftool
に変更を加えて保存するのは簡単ではありません (方法が明らかではありません) 。
私がやりたいことは、変更の管理と保存が簡単な meld のセットアップを使用することです。mergetool
ただし、マージの競合を引き起こす必要があるテスト変更を行い(たとえば、両方のリポジトリで同じ行に別の追加を追加)、リモートを更新すると、次のようになりgit mergetool origin/main 2nd_remote/main
ます。
No files need merging
私の目標
上記の状況を考えると、次の解決策のいずれかに到達する必要があると思います。
difftool
一時ファイルではなく「実際の」ファイルに簡単に保存できるメルドの変更方法を理解してください。またmergetool
この 2 つのリモート セットアップで作業を開始する
しかし、私が完全に間違ったツリーに吠えており、別のより良い方法がある場合は、間違いなくそれについて聞きたいと思っています。すべてのガイダンスは大歓迎です!