inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

빠르게 git - 핵심만 골라 배우는 Git/Github

추가자료 - diff & revert

revert 에서 에러가 발생하는데 이유를 모르겠습니다.

1838

rweteam

작성한 질문수 16

0

최종커밋 결과 

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. 정상이 아니라면 왜 저는 충돌이 났을까요?

 

감사합니다

github git 버전관리시스템

답변 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

0

rweteam

감사합니다. 여태까지 되돌아갈 커밋을 git revert 뒤에 적어주는 줄 알았습니다.

해결됐습니다

1

강민철

안녕하세요 ^^

revert는 이전 커밋의 변경사항을 취소하는 '새로운' 커밋을 만드는 커밋입니다.

 

그렇기에 revert하여 추가할 커밋이 지금의 상태와 같은 라인을 변경한다면 

충돌이 발생할 수 있습니다.

 

질문자님의 코드의 경우,

이전의 EF와 새로운 커밋으로 만들기 위한 E가 같은 라인이기 때문에 충돌이 발생한 것입니다.

 

충돌이 발생했을 경우, 

하셨던 것처럼 충돌을 해결해주고 add 후 commit 하시면 됩니다 :)

 

보다 자세한 예제 및 설명이 필요하시다면 아래 링크를 참조해보세요!

 

https://stackoverflow.com/questions/46275070/why-do-i-get-conflicts-when-i-do-git-revert

 

감사합니다.

0

rweteam

추가 질문을 아래에 적어놨습니다~

0

rweteam

답변감사합니다

근데 오늘 새로운 라인으로 테스트를 해보았는데 똑같은 충돌이 발생했습니다.

첫 커밋에서

A

두번째 커밋에서

A
B

이렇게 진행했고

A만 있던 커밋으로 revert를 하자 충돌이 발생했는데요..

 

이러면 다른 라인이니까 충돌이 발생하지 않아야되는게 아닌가요??

git status 에서 폴더에 파일을 생성하면 해당 파일이 수정으로 뜨는데 기존 파일 수정시에는 수정내역으로 안뜨네요 왜 그런걸까요?

0

12

1

pull request에 관해

0

72

1

로컬과 원격의 상호작용 강의 질문

0

184

2

password authentication was removed

0

266

2

section3부터 맥북에서 화면이 안나옵니다.

0

252

2

Git bash 우클릭 보이지 않음

0

396

1

원격 저장소 조회(추가)

0

197

1

혹시 아래처럼 계속 파일을 찾을 수 없다는 건 어떤 의미일까요..

0

172

1

Git 맥북 다운로드

0

343

2

Git bash 다 마우스 우클릭해도 보이지 않습니다

0

466

2

pr 이후 브랜치 삭제 질문드립니다

0

1051

2

블로그

0

289

2

github에서 push오류

0

299

1

reset에서 head

0

364

1

git branch 관련 질문

0

243

1

Section 2 / 4강 / 3:23초 질문

0

185

1

diff & revert

0

286

1

이슈 번호를 잘못 명시한 커밋을 삭제하는 방법

0

1233

1

강의 "로컬과 원격의 상호작용 실습 (+충돌이 난 경우)" 편의 영상 7분 38초 쯤에서 질문 드립니다.

0

459

1

mac사용

0

344

1

원격 branch를 checkout 하면서 새 branch를 만드는 방법

0

498

1

git checkout 과 git switch/restore

0

2455

1

로컬 브랜치 관련 질문합니다.

0

225

3

git stash, git tag 에 대한 강의자료가 있으면 좋겠습니다

0

328

1