Git Revert와 Rebase

DongHwan·2021년 7월 21일
0

Git

목록 보기
2/12

Git에서 커밋 이력을 되돌리는 방법은 Revert와 Rebase가 있다. 두 명령어의 차이는 Reset은 커밋한 이력 자체를 없애버리지만, Revert는 커밋한 이력을 그대로 둔 채 새로운 Revert 커밋 이력을 만드는 것이 차이이다. 두가지 명령을 사용하는 방법을 정리하려 한다.

Reset

Reset은 이전 커밋으로 돌아감과 동시에 그 이후의 커밋 이력을 삭제한다. 또한, 옵션을 통해 인덱스(Stage)와 워킹 디렉토리의 상태까지 결정할 수 있다.

1. hard

git reset --hard <돌아갈 커밋>으로 사용하는 hard 옵션은 워킹 디렉토리와 인덱스의 상태까지 모두 지워버린다. 즉, 완전히 해당 커밋의 상태로 바뀐다.

2. soft

git reset --soft <돌아갈 커밋>으로 사용되는 soft 옵션은 워킹 디렉토리와 인덱스의 상태를 그대로 유지한다.

3. mixed

기본값으로 적용되어 있으며, git reset --mixed <돌아갈 커밋>로 명시적으로 사용할 수 있다. mixed 옵션은 워킹 디렉토리의 상태는 유지되지만, 인덱스는 초기화된다.

Revert

Revert는 상태만 되돌린다. 커밋 이력은 그대로 남기고, revert했다는 것을 커밋 이력에 남긴다. revert하는 과정에서 충돌되는 파일이 있을 경우, 적절히 수정을 해주어야 한다.

참고 링크

git revert로 커밋 되돌리기
개발바보들 1화 - git Back to the Future

profile
날 어떻게 한줄로 소개해~

0개의 댓글