반응형
reset과 마찬가지로
과거로 되돌리기 위한 명령어다.
reset과 revert 차이는 실행 후 commit 이력이 남는가?
revert는 reset과 달리 commit을 삭제하지 않고 추가한다.
git revert {Commit ID}
📍 reset
📍 revert
예시
git log 확인 결과 A → B → C → D commit 이 존재한다.
B Commit 수정이 필요한 것을 확인하여
해당 변경내용만 없애고 싶다.
하지만 이미 push 해서 다른 팀원들이 사용하고 있을 수 있어서
commit 이력을 없애기는 부담스럽다.
revert로 인해 B commit 당시 변경 내역만 사라진다.
(C, D 변경내용 변화 X)
기존 B Commit을 포함해
전체 commit 내역은 그대로 남아있고,
revert 처리로 인한 새로운 commit이 생겨난 것이다.
B commit 변경내역과 충돌이 발생한다면
이를 먼저 해결해야 한다.
바로 commit 되지 않는 revert
git revert -n {commit ID}
여러 commit을 revert
git revert [commit ID 1]...[commit ID N]
요약 및 결론
revert로 중간 commit만 삭제할 수도 있지만
해당 commit이 왜 revert 되었는지
commit history에서도 계속 확인할 수 있다.
reset이 commit 이력을 깔끔하게 유지할 수 있지만
다른 사람과 함께 작업하는 브랜치라면
revert로 충돌을 최소화할 수 있다.
📌 Git 목록
반응형
'Git' 카테고리의 다른 글
[Git 깃] git blame (0) | 2022.08.07 |
---|---|
💻 [Git 깃] 영역별(add, commit, push) 되돌리기 (0) | 2022.08.02 |
[Git 깃] git reset (0) | 2022.07.29 |
[Git 깃] git rebase 위험성 (0) | 2022.05.22 |
[Git 깃] git rebase (0) | 2022.05.17 |
댓글