우리는 때로 되돌렸다는 기록을 남기면서 commit을 되돌려야할 때가 있습니다.
이럴 때, revert 명령을 사용하게 되죠.
하지만, 되돌릴 커밋이 merged commit일 때가 문제죠.
2개의 commit이 병합되어있을 경우, 되돌릴 때 어떤 commit으로 되돌려야할 지가 문제죠.
이제 이 문제를 하나씩 살펴봅시다.
Merged
| \
C B
| /
A
위와 같은 상태에서 merged commit을 revert해 봅시다.
$ git revert <Merged>
이런 식으로 명령을 내리면 git이 명령 수행을 할 수 없다고 불평을 합니다.
당연한 일이죠.
되돌렸을 때, C로도 갈 수 있고, B로도 갈 수 있기 때문입니다.
이럴 때, -m 옵션을 사용할 수 있습니다.
쉽게 말해 revert 후, 어느 쪽을 따라 갈까? 라는 걸 알려주는 거죠.
2개의 commit이 merge 되기 때문에 1 혹은 2를 인자로 넣어줄 수 있어요.
$ git revert -m1 <Merged>
AC
|
Merged
| \
C B
| /
A
1을 주면 master branch를 따라 가게 됩니다.
즉, B가 revert되고 A와 C가 남습니다.
그럼 2를 주면?
$ git revert -m2 <Merged>
AB
|
Merged
| \
C B
| /
A
topic branch를 따라 가게 됩니다.
즉, C가 revert되고 A와 B가 남습니다.
하지만, 현재의 branch는 master로 유지됩니다.
핵심만 쉽게 설명 드렸는데, 잘 이해되셨으면 좋겠네요. ^^
'DevTools > Git' 카테고리의 다른 글
[Git] Tip: Using BeyondCompare4 as Diff Tool (0) | 2022.02.23 |
---|---|
[Git] Tip: Cherry-pick from a Different Repository (0) | 2021.11.30 |
[Git] Tip: Change committer and author from already committed commit (0) | 2021.02.15 |
[Git] Restore Command (0) | 2020.10.23 |
[Git] Switch Command (0) | 2020.10.23 |
댓글