대상 커밋을 HEAD커밋의 자식으로 새로 생성한다.
revert 대상 커밋은 사라지지 않는다.
revert 대상 커밋의 내용을 되돌린 새로운 커밋이 생겨난다.
장점: 이전 커밋 기록이 다 남아 있다.
단점: 충돌 날 가능성이 매우 높다. 다소 어렵다.
revert는 커밋을 보존하면서 내용만 되돌릴 수 있는 좋은 되돌리기 방법!
: 촤신부터 순서대로 revert를 반복 적용하면 된다
1) 브랜치1에서 일단 임시 커밋을 한다.
2) 브랜치2로 체크아웃하고 볼 일을 본다.
3) 다시 브랜치1로 되돌아 온다.
4) 1의 작업을 이어서 마무리 짓는다.
5) 커밋 덮어쓰기 (commit --amend)를 한다.
6) (옵션) 필요하다면 (push --force)를 한다.
: 다른 브랜치로 체크아웃하기 전에 현재 작업내용을 저장하는 임시 저장소
1) stash를 만든다.
2) 이 때 새로운 파일이 있다면 인덱스에 추가한다.
3) 체크아웃한다.
4) 되돌아 온다.
5) Stash를 Pop 한다.
6) 보통 커밋을 새로 생성한다.
➕ stash 관련한 추가 설명 링크
: https://steady-coding.tistory.com/286
:리베이스도 병합(merge)과 마찬자기로 두 브랜치의 내용을 하나로 합치고 싶을 때 사용합니다. rebase는 기본 merge와는 달리 트리가 더 깔끔하게 유지됩니다.
➕ rebase 관련한 추가 설명 링크
: https://velog.io/@godori/Git-Rebase
장점
1) 주석을 남기지 말자
2) 좋은 커밋의 단위
3) 커밋 메시지를 잘 쓰자!