22

私が取り組んでいるプロジェクトの.hヘッダーファイルに小さな矛盾がありました。このプロジェクトはGitで追跡されます。矛盾した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のどちらですか?

さらに重要なのはどうすれば削除できますか?

答えて

39

他のファイルと同じように単純に削除できます。例:他の人跡未踏のファイルが存在しない場合

git clean -n 
git clean -f 

git clean -nはあなたを教えてくれると

rm MyHeader.h.orig 

あるいは、あなたは

git commit -a 

にコミットした後、あなたのリポジトリをきれいかもしれないものgit clean -fとなりますので、あなたが望むものであると確信することができます。

+0

ありがとうございます。 - git clean -n/-f'は、ずっと長い間続いています。サブフォルダでのみクリーンアップを実行する場合は、最後にパスを指定することもできます。 –

+0

* .origが** .gitignore **ファイルにあることがあります。この場合、無視されるファイル 'git clean -nx */*。orig'を含め、' git clean -fx */*。orig'をチェックして削除してください。 クレジットカード:http://travisjeffery.com/b/2011/12/keeping-your-git-repo-clean-of-orig-files/ –

7

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

+1

注:「それらが唯一の未追跡ファイルである場合」バージョン管理下にないファイルを簡単に失う可能性があるので、 'git clean'には非常に注意してください!手動で削除することをお勧めします。 –

+0

あるいは、私は 'git clean -f * .orig'のようなファイルパターンを習慣に入れました。 –

1

最初にマージします。

すべてがうまくいれば、手動でこれらの余分なファイルを手動で削除してください(たとえばrm <filename>を使用)。