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

+ Recent posts