web-dev-qa-db-ja.com

競合するgitマージ後のクリーンアップ?

作業中のプロジェクトの.hヘッダーファイルで小さな競合がありました。このプロジェクトはGitで追跡されます。

幸いなことに、競合は非常に簡単に解決できました。使った

git mergetool

そして、私のMacではFileMergeのように見えるデフォルト(opendiff)を選択しました。適切な変更を加え、ファイルを保存して閉じました。

次に、Gitはマージが成功したかどうかを尋ねました。私は「はい」と答えました。

Was the merge successful? [y/n] y

しかし今、私は持っています:

> git st
# On branch develop
# Changes to be committed:
#   modified:   MyHeader.h
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   MyHeader.h.BACKUP.52920.h
#   MyHeader.h.BASE.52920.h
#   MyHeader.h.LOCAL.52920.h
#   MyHeader.h.REMOTE.52920.h
#   MyHeader.h.orig

FileMergeによって作成された余分なジャンクコンフリクトファイルのうち、どれがGitによって作成されたものですか。

そしてより重要なのは:どうすれば削除できますか?

27
Craig Otis

他のファイルと同じように削除するだけです。例えば:

rm MyHeader.h.orig

または、追跡されていないファイルが他にない場合は、

git commit -a

あなたはあなたのリポジトリをきれいにするかもしれません

git clean -n
git clean -f

git clean -ngit clean -fが何をするかを教えてくれるので、あなたはそれがあなたが望むものであると確信することができます。

46
Neil Forrester

それらが唯一の追跡されていないファイルである場合は、git cleanを使用してそれらを削除できます。 -nフラグを指定して1回実行し、何が削除されるかを確認してから、確信がある場合は-fを指定して実行します。保持したい追跡されていないファイルがある場合は使用しないでください。

8
Ben Lings

最初にマージをコミットします。

すべてが問題ないことを確認したら、手動でこれらの余分なファイルを削除します(rm <filename>、 例えば)。

1
Brent Faust