22

작업중인 프로젝트의 .h 헤더 파일에 충돌이 있습니다. 이 프로젝트는 Git에서 추적됩니다.충돌하는 git 병합 후에 정리하기?

다행히도이 충돌은 매우 간단합니다. 나는

git mergetool

을 사용 그리고 내 Mac에서 FileMerge를 될 것 같았다 기본 ( opendiff)를 선택했다. 적절한 변경을하고 파일을 저장 한 다음 닫았습니다. 병합이 성공하면

힘내 다음 나에게 물었다, 나는 그렇다고 대답 :

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 플래그를 사용하여 한 번 실행하여 삭제할 항목을 확인한 다음 확실한 경우 -f과 함께 실행하십시오. 지키고 싶지 않은 파일이있는 경우에는 사용하지 마십시오!

+1

참고 : "유일한 untracked 파일 인 경우". 버전 통제하에 있지 않은 바로 그 파일들을 쉽게 잃어 버릴 수 있으므로'git clean '에 매우주의하십시오! 수동으로 제거하는 것이 좋습니다. –

+0

또는 파일 패턴을 사용하는 습관이 생겼습니다.'git clean -f * .orig' –

1

먼저 병합을 수행하십시오.

모두 문제가 없다고 생각하면 수동으로 추가 파일을 제거하면됩니다 (예 : rm <filename> 사용).