Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

jwj3400

Git Reset 명령어 본문

코딩/git

Git Reset 명령어

jwj3400 2023. 8. 11. 02:36

1) 해당 명령어의 사용이유

  •   단순히 이전 돌아가고 싶은 커밋으로 가고 싶을 때 사용하거나, 버그로 인하여 롤백해야하는 경우 이전 커밋으로 되돌아가기 위해 위 명령어를 사용

2) git reset과 git revert 차이

git reset:

  • reset은 아예 현재가 없었던 것 처럼 원하는 과거로 돌아감. reset은 이력을 남기지 않음. 따라서 현재까지의 commit 이력을 남기지 않고 원하는 시점으로 완전히 되돌아가고 싶을 때 사용
  • 혼자만 사용하는 브랜치인 경우 / origin에 있지만 아무도 이 브랜치를 사용하지 않는다는 확신을 가지는 경우에 사용

git revert:

  • revert는 과거로 돌아가겠다는 이력을 남겨두고 원하는 시점으로 돌아감, 즉, 이전의 commit 내역을 남겨두고 새로운 commit을 생성하면서 과거로 돌아감
  • 대다수의 경우 revert 사용 / 여러 개발자가 함께 협업하는 프로젝트에서는 revert로 작업할 것

 

3) 구체적 사용법

git reset

git reset --soft [commit ID] 
git reset --mixed [commit ID]
git reset --hard [commit ID]
git reset HEAD~10 
git reset HEAD^
  • soft : commit된 파일들을 staging area로 돌려놓음. (commit 하기 전 상태로)
  • mixed(default) : commit된 파일들을 working directory로 돌려놓음. (add 하기 전 상태로)
  • hard : commit된 파일들 중 tracked 파일들을 working directory에서 삭제 (Untracked 파일은 여전히 Untracked로 남음)
  • HEAD~취소할커밋수 : 현재로부터 원하는 만큼의 커밋이 취소된다.
  • HEAD^ : 가장 최근의 커밋이 취소된다. (기본옵션 mixed)

git revert

git revert [commit ID]
  • 돌아가고자 하는 ID로 돌아감