1. ホーム
  2. git

[解決済み] Git Interactive Merge?

2023-02-27 23:19:33

質問

まったく同じファイルを持つ 2 つのブランチがあり、対話的にそれをマージしたいのですが (念のため言うと、それは .sql ファイルです)。

ほとんど、私は競合があるときに行うような差分プログラム (またはコマンド ライン) を開き、どの行がどこに行くかを正確に選択したいのです。

これを行う方法はありますか?

どのように解決するのですか?

はい。しかし、ほとんどの場合、手動でそれを実現することになります。Git に、関連する二つのブランチをマージするけれども、その結果を自分自身でコミットしようとしないように指示します ( を追加するために編集されました。 また、マージが些細なことであると判断した場合は、fast-forward を実行します)。

git merge --no-commit --no-ff branch-to-merge

次に、2つのブランチに現れたファイルをgitに問い合わせます。

git show HEAD:filename >filename.HEAD
git show branch-to-merge:filename >filename.branch

とそのマージベースです。

git show `git merge-base HEAD branch-to-merge`:filename  >filename.base

好きなツールを使ってマージすることになります(例えば)

meld filename.{HEAD,branch,base}

というステージになります( git add filename )、そしてマージをコミットします ( git commit ).