revert 에서 에러가 발생하는데 이유를 모르겠습니다.
1810
작성한 질문수 16
최종커밋 결과
ABCD
EF
인 상태에서 이전 커밋결과인
ABCD
E
로 revert 하려고했습니다.
revert를 해보니 아래와 같은 에러가 발생했는데요
충돌 (내용): diffp에 병합 충돌
error: 다음을 되돌릴(revert) 수 없습니다: 8d0a9f3... F
힌트: 이 충돌을 해결한 뒤에, 바로잡은 경로를
힌트: 'git add <경로>' 또는 'git rm <경로>'로 표시하십시오.
힌트: 그리고 결과물을 'git commit'으로 커밋하십시오
diffp 파일을 열어보니 충돌이 난 것 처럼
<<<<<< 와 >>>>> 표시가 있었습니다.
수정하고싶은 부분을 수정하고
staging area 로 add한 후에 커밋을하니까
그제서야 revert가 동작했습니다.
질문은 아래와 같습니다.
1. 원래 이렇게 충돌이 나는게 정상인가요?
2. 그렇다면 왜 선생님이 revert 할 땐 충돌이 나지 않았을까요?
3. 정상이 아니라면 왜 저는 충돌이 났을까요?
감사합니다
답변 3
1
음... 제 생각에는 명령어를 잘못 입력하신 것이 아닌가 싶습니다.
혹시 어떻게 명령어를 입력하셨나요?
저는 아래와 같이 잘 되거든요.
git reset <되돌릴 커밋> 입니다.
가령 지금이 두번째 커밋이라면 git reset <두번째 커밋> 으로 작성하시면 됩니다.
minchul@DESKTOP-9KULGUE MINGW64 /c/test (master)
$ echo A >> test.txt
minchul@DESKTOP-9KULGUE MINGW64 /c/test (master)
$ git add .
minchul@DESKTOP-9KULGUE MINGW64 /c/test (master)
$ git commit -m "1"
[master (root-commit) bab6dc9] 1
1 file changed, 1 insertion(+)
create mode 100644 test.txt
minchul@DESKTOP-9KULGUE MINGW64 /c/test (master)
$ echo B >> test.txt
minchul@DESKTOP-9KULGUE MINGW64 /c/test (master)
$ cat test.txt
A
B
minchul@DESKTOP-9KULGUE MINGW64 /c/test (master)
$ git commit -am "2" # add와 commit을 동시에 하고 commit 메세지는 "2"로 한다
[master 6abeae2] 2
1 file changed, 1 insertion(+)
minchul@DESKTOP-9KULGUE MINGW64 /c/test (master)
$ git log
commit 6abeae25a7fb58c785abbfbe624906bc45f67856 (HEAD -> master)
Author: Kang Minchul <tegongkang@gmail.com>
Date: Thu Dec 30 10:51:53 2021 +0900
2
commit bab6dc9183362cb93315c320e73c9d4930d46dc3
Author: Kang Minchul <tegongkang@gmail.com>
Date: Thu Dec 30 10:51:36 2021 +0900
1
minchul@DESKTOP-9KULGUE MINGW64 /c/test (master)
$ git revert HEAD # git revert 6abeae25a7fb58c785abbfbe624906bc45f67856 로 입력해도 무방
[master 26db2ad] Revert "2"
1 file changed, 1 deletion(-)
minchul@DESKTOP-9KULGUE MINGW64 /c/test (master)
$ cat test.txt
A
1
안녕하세요 ^^
revert는 이전 커밋의 변경사항을 취소하는 '새로운' 커밋을 만드는 커밋입니다.
그렇기에 revert하여 추가할 커밋이 지금의 상태와 같은 라인을 변경한다면
충돌이 발생할 수 있습니다.
질문자님의 코드의 경우,
이전의 EF와 새로운 커밋으로 만들기 위한 E가 같은 라인이기 때문에 충돌이 발생한 것입니다.
충돌이 발생했을 경우,
하셨던 것처럼 충돌을 해결해주고 add 후 commit 하시면 됩니다 :)
보다 자세한 예제 및 설명이 필요하시다면 아래 링크를 참조해보세요!
https://stackoverflow.com/questions/46275070/why-do-i-get-conflicts-when-i-do-git-revert
감사합니다.
0
답변감사합니다
근데 오늘 새로운 라인으로 테스트를 해보았는데 똑같은 충돌이 발생했습니다.
첫 커밋에서
A
두번째 커밋에서
A
B
이렇게 진행했고
A만 있던 커밋으로 revert를 하자 충돌이 발생했는데요..
이러면 다른 라인이니까 충돌이 발생하지 않아야되는게 아닌가요??
pull request에 관해
0
38
1
로컬과 원격의 상호작용 강의 질문
0
135
2
password authentication was removed
0
227
2
section3부터 맥북에서 화면이 안나옵니다.
0
210
2
Git bash 우클릭 보이지 않음
0
351
1
원격 저장소 조회(추가)
0
175
1
혹시 아래처럼 계속 파일을 찾을 수 없다는 건 어떤 의미일까요..
0
140
1
Git 맥북 다운로드
0
298
2
Git bash 다 마우스 우클릭해도 보이지 않습니다
0
417
2
pr 이후 브랜치 삭제 질문드립니다
0
964
2
블로그
0
259
2
github에서 push오류
0
266
1
reset에서 head
0
338
1
git branch 관련 질문
0
221
1
Section 2 / 4강 / 3:23초 질문
0
169
1
diff & revert
0
271
1
이슈 번호를 잘못 명시한 커밋을 삭제하는 방법
0
1185
1
강의 "로컬과 원격의 상호작용 실습 (+충돌이 난 경우)" 편의 영상 7분 38초 쯤에서 질문 드립니다.
0
420
1
mac사용
0
309
1
원격 branch를 checkout 하면서 새 branch를 만드는 방법
0
448
1
git checkout 과 git switch/restore
0
2426
1
로컬 브랜치 관련 질문합니다.
0
204
3
git stash, git tag 에 대한 강의자료가 있으면 좋겠습니다
0
307
1
브랜치를 main(master) 와 동기화 하고 싶을 때
0
9163
1





