git checkout (커밋 이동관련)
- 브랜치가 아닌 특정 커밋에 대해 위치를 이동할 수 있다. 이는 시간 여행과 같음으로 이 커밋 이후에 했던 모든 커밋과 같은 기록은 안 보이게 된다. ex)git checkout <커밋-해쉬값>
- 이 때 Detached HEAD 상태가 된다. 기본적으로 HEAD는 브랜치를 가리켜야 한다. 하지만 이전 커밋에 대해 위치를 변경하려면 직접 HEAD가 커밋을 가리켜야 하므로 Detached HEAD라고 부른다.
- 가장 최신 커밋으로 돌아가려면 'git checkout <브랜치명>'을 해주면 된다.
- Detached HEAD 상태에서도 브랜치를 새로 만들어 분기할 수 있다. 이를 통해 Detached HEAD 상태에서 벗어날 수 있고, 병합할 수도 있다.
git restore <fileName>
- 이를 통해 브랜치에서 해당 파일명을 갖는 파일의 변경사항을 폐기할 수 있다. 커밋 전의 상태를 말한다.
- --staged 옵션을 주면 스테이지 영역에서 워킹 디렉토리로 뺄 수 있다. 즉, add하기 전의 상태로 돌아갈 수 있다.
git reset <커밋-해쉬값>
- 커밋 기록을 되돌리는 명령어이다. 이 때 변경사항은 그대로 남아있고, 커밋 기록만 사라지게 된다. 따라서 잘못된 커밋의 경우 지우거나 다른 브랜치에 옮겨 두는 방식으로 진행할 수 있다.
- --hard 옵션을 주면 커밋 기록뿐만 아니라 변경 사항도 모두 삭제된다.
- <커밋-해쉬값>에 해당하는 커밋 위치로 이동한다.
git revert <커밋-해쉬값>
- reset과 다르게 이전 커밋의 변경사항을 지운 새로운 커밋을 만든다. 따라서 커밋이 삭제되는 것이 아닌, 새로운 커밋을 만든 후 여기에 커밋이 삭제되었을 경우의 내용을 써놓는다.
- reset과 다르게 <커밋-해쉬값>에 해당하는 커밋의 전 부분에 대한 커밋 내용이 들어있다.
- 협업의 경우 reset보다 revert를 사용하자.
'Git' 카테고리의 다른 글
git fetch & git pull (0) | 2024.08.12 |
---|---|
Github & git push (0) | 2024.08.12 |
Git Stash (0) | 2024.08.09 |
Git Diff (0) | 2024.08.09 |
Git 브랜치 병합 (0) | 2024.08.09 |