5

meld をインストールして実行しgit mergetool、左右のファイルを中央のファイルにマージして保存し、ウィンドウを閉じました。以前にも、mergetool がマージが成功したかどうかを尋ねたのを覚えていますが、今回は成功しませんでした (「はい」と答えたはずです)。自分のファイルを開いたところ、望んでいたとおりでしたが、不要なファイル「myfile.orig」があったので、実行git clean -fdして削除しました。それから私はやっgit add -Agit commit -m 'merged feature-a'。このプロセスはより短く、よりクリーンにできたように感じます。

  • 競合がある場合、これはマージする正しい方法ですか?
  • 他の方法はありますか?
4

1 に答える 1

0

1 : 外部のマージツールを呼び出した後、git はターゲット ファイルが更新されているかどうかを確認します (例: 変更日がバックアップ ファイルの日付より新しいかどうか)。そうである場合、マージは「成功」したと見なされます。それ以外の場合は、元のファイルを保持するつもりだったのか、それとも単にマージを修正しなかったのかを確認するための質問が表示されます。

したがって、質問を飛ばすctrl+Smeldは、単純に打ち込むだけで十分です。これを知っておく必要があります。競合が発生した後は、コミットしようとしていることを常に読み直してください。

2 :*.origファイルは、マージ競合が解決されるたびに git によって生成されます。一般的には、これらを に追加することをお勧めしますが、特に.gitignore気にする必要はありません。
へのショートカットをfind . -name '*.orig' | xargs rmパスに追加しました。これは、IDE に *.orig ファイルが多すぎる場合に実行することがあります。

3 : 「成功した」マージの後、git は結果のファイルを自動的に ed にする必要があるため、ステップgit addをスキップできました。git add -A


要約すると:

  • あなたの歩みはすべて正しかった、
  • ファイルを無視し、予想されるファイルがステージングされていることを確認すると、競合の解決が成功した後'*.orig'に直接呼び出すことができるはずです。git commit
于 2020-06-14T12:19:36.560 に答える