2010-06-24 2 views
5
$ git checkout to-branch 
$ git merge from-branch 
$ git status | grep unmerged 
# file1 unmerged 
# file2 unmerged 
# file3 unmerged 
$ vi file1 
$ git add . 

Eek! 나는 "git add"를 의미하지는 않았다. 나는 "git add file1"을 의미했습니다! 내가 시도"git add"를 실행 취소하는 방법 병합하는 동안?

$ git show :1:file2 

: 같은

지금은 행동을 얻을 수

$ git reset file2 

$ git checkout -m file2 

하지만를 그 반환의도는 "병합"상태로을 file2 . git status가 unmerged로 표시되지 않고 "git show : 1 : file2"에 액세스 할 수 없습니다. 파일을 병합되지 않은 상태로 되돌리고 싶습니다.

"git add"이전의 상태로 돌아갈 수 있습니까? file1에 대한 내 변경 사항을 잃지 않고?

답변

10

(테스트되지 않음) 당신이

git checkout -m /path/to/file2 
git checkout -m /path/to/file3 

을 시도 했습니까?

인덱스에서 경로를 체크 아웃이 옵션은 "이 문제가 해결되지 않으면

, 당신은 SO 질문에 다른 대답을해야 할 수도 있습니다 지정된 경로에 충돌 병합을 다시 만들 수 있습니다 How do I get my git merge conflicts back after merging incorrectly? "(난 그냥 지금처럼)

+0

감사합니다. 이것은 당신에게 병합 충돌이있는 파일을 제공하지만 병합 충돌을 추적하는 데 git이 사용하는 것이 무엇이든 업데이트하지 않기 때문에 자식 상태가 파일을 병합되지 않은 것으로 표시하고 git show : 1 : file2 등을 나타내지 않습니다. 작업. 다른 질문을 살펴볼 것입니다. –

+0

+1, 차갑게 - 나는이 모호한 특징에 대해 몰랐다. 그냥 그것으로 테스트를 시도하고 광고로 작동하는 것 같습니다. –

1

경우에는 사람이 여전히이 문제가, 당신이 (지금)이 작업을 수행 할 수 있습니다

git update-index --unresolve file2 file3 
관련 문제