Notice
Recent Posts
Recent Comments
«   2024/11   »
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
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

git revert, reset, restore 본문

Git

git revert, reset, restore

빌드이너프 2024. 1. 18. 17:03

git 되돌리기

  • git은 버전관리 프로그램이기 때문에 언제든지 이전 commit으로 돌아가거나
    문제가 되는 commit 내역을 취소할 수 있다

 

git restore - 파일 하나 되돌리기

  • 파일 하나가 잘못되었을 경우 cmd + z로 여러 번 눌러도 되지만 수정사항이 너무 많다면 명령어 하나로 처리할 수 있음

 

git restore 파일명
  • 최근 commit된 상태로 현재 파일의 수정내역을 되돌릴 수 있다

 

git restore --source 커밋아이디 파일명
  • 입력한 파일이 특정 커밋아이디 시점으로 복구된다

 

git restore --staged 파일명
  • 특정 파일을 staging 취소할 수 있다(복구랑 상관X)

 

git revert - commit 되돌리기

  • git revert는 commit을 없애는 것이 아니라 취소한 commit를 생성해준다
    revert

 

git revert 커밋아이디
  • 커밋아이디에서 일어난 일만 취소해 줌
  • 실행 시 에디터가 나오고 커밋 메시지 수정 후 닫으면 됨
  • Vim 에디터 나올 경우 수정(i), 나오기(esc), 저장(wq)

 

  • revert 할 때 동시에 여러 개의 commit id 입력 가능
  • 최근 했던 commit 1개만 revert 하고 싶으면 git revert HEAD
  • merge 명령으로 인해 새로 만들어진 commit도 revert 가능 => merge가 취소됨

 

git reset - 전부 되돌리기

  • 특정 commmit 시절로 모든 것을 되돌릴 수 있다
    reset

 

git reset --hard 커밋아이디
  • 커밋이 생성될 때로 되돌려준다
  • 작업 폴더 내의 파일도 해당 시점으로 돌아간다

 

  • 여러 명이서 협업하는 repository에는 보통 reset을 사용하면 안된다
  • untracked 파일은 사라지지 않고 유지된다(git add 안해놓은 파일 유지)
  • git clean 명령어는 untracked 파일들도 모두 다 지울 수 있다

reset 시 옵션 설정(hard | soft | mixed)

gitlog

git reset --hard c4b379b
  • a, b 파일은 남아있고, c 파일 삭제됨

 

git reset --soft c4b379b
  • a, c 파일은 남아있고, b 파일은 staging area에 남아있다
    • commit 할 수 있다

 

git reset --mixed c4b379b
  • a, c 파일은 남아있고, b 파일은 staging 되지 않은 상태가 된다
    • git add, git commit 할 수 있다

 

git reset 정리

  • reset은 파일을 완전히 지우는 것이 아니라
    검토하고 다시 commit하고 싶으면 --soft | --mixed 사용하면 됨
  • git reset ~--mixed 옵션이 자동으로 발동됨

'Git' 카테고리의 다른 글

git pull, clone, 협업  (0) 2024.01.18
github 사용법, git push  (0) 2024.01.18
git merge, branch 삭제  (0) 2024.01.18
git branch 생성, 병합, 충돌  (0) 2024.01.18
git add, commit, diff  (0) 2024.01.18