[TIL / Git] 커밋 덮어쓰기, stash

Changyun Go·2021년 12월 2일
0
post-thumbnail

[TIL / Git] 커밋 덮어쓰기, stash

  • 다른 브랜치로 체크아웃하려고 하면 커밋하지 않은 변경사항이 없어야 한다.
  • 긴급하게 다른 브랜치로 체크아웃 하고 싶을 때 사용하는 두 가지 방법이 있다.

커밋 덮어쓰기


  1. 현재 브랜치에서 일단 임시 커밋을 한다.
  2. 다른 브랜치로 체크아웃하고 볼일을 본다.
  3. 다시 이전 브랜치로 되돌아온다.
  4. 작업을 이어서 마무리 짓는다. → 여기서 그냥 커밋을 하게 되면 임시 커밋 위에 커밋이 되기 때문에 좋지 않다.
  5. 그래서 커밋 덮어쓰기(commit --amend)를 한다. → 소스트리에서는 커밋 옵션에서 '마지막 커밋 정정'을 누르고 커밋하면 된다.
  • 임시 커밋을 푸시해버렸으면 덮어쓰기가 안되기 때문에 강제푸시(push --force)를 해야 한다.

stash 사용


  • stash는 다른 브랜치로 체크아웃하기 전에 현재 작업 내용을 저장하는 임시 저장소다.
  • 불필요한 커밋을 줄이기 위해 사용한다.
  1. 커밋하지 않은 변경사항이 있는 상태에서 stash를 만든다. → 스테이징이 한 번도 안됐던 파일(untracked file)은 stash가 불가하므로 스테이지에 올려준다.
  2. 다른 브랜치로 체크아웃하고 볼일을 본다.
  3. 다시 이전 브랜치로 되돌아온다.
  4. stash를 pop한다. → stash 적용을 누르면 원래 작업 중이던 내용으로 되돌아간다.
  5. 커밋을 새로 작성한다.
  6. 불필요한 stash는 삭제한다.

P.S.

✍️ 커밋을 빠짐없이 하되, 의미 없는 커밋을 만들지 않는 것도 얼마나 중요한지 느끼게 된다.

Reference


0개의 댓글