티스토리 뷰

Git

GIT4 - Reset & Revert

summercat 2022. 2. 14. 23:03

Reset vs Revert

reset: 변화된 내용과 그 기록을 삭제

revert: 변화된 내용을 삭제하지만, 변화된 기록과 지운 기록 모두를 보존

 

Head

  • working directory가 어떤 버전을 기반으로 해서 수정 되었는지를 보여줌
  • 헤드를 옮긴다 ex) 버전 c에서 버전b로 헤드를 옮길 경우
    • working directory를 b의 상태로 바꿈

checkout: 헤드를 직접적으로 바꾸는 명령어

 

Reset

reset: 헤드가 브랜치를 가리키고 있을 때 그 브랜치가 가리키는 버전을 바꾸는 명령어 > 브랜치를 바꾸는 효과가 남

  • head -> master -> C의 경우 git reset B 하면 head -> master -> B : working copy는 B가 됨
  • git reset master 하면 master가 가리키는 버전을 가리키라는 뜻 (변화 없음)
  • head -> master -> C의 경우 git checkout B 하면 head -> B master -> C : working directory는 B가 됨
  • git checkout master 하면 head가 master를 가리키라는 뜻으로, head -> master -> C 가 됨
  • head가 브랜치를 가리키지 않고 버전을 직접적으로 가리키는 경우, 헤드가 브랜치로부터 detached라고 표현

 

git reflog : 내렸던 모든 명령과 그에 따른 원인에 해당되는 버전들이 나열됨

 

git reset의 종류

  • git reset --hard
  • git reset --soft
  • git reset (mixed): mixed는 생략 가능

Revert

Reset과 Revert의 비교

  • git reset --hard commit_2
  • git revert commit_3

Revert에서 conflict가 발생할 경우

a -> b -> c -> d 에서 b를 revert하고 싶을 경우, revert b 하면

b를 base로 한 3 way merge과정이 일어남

 

merge한 후

git revert --continue: commit 메시지 작성 화면으로 넘어감

git revert --abort: revert한 내용(변경사항)을 취소

'Git' 카테고리의 다른 글

깃헙에 SSH key 등록해서 사용할 때 주의할점 (ssh-agent)  (1) 2023.01.18
GIT3 - CLI branch & conflict  (0) 2022.02.07
GIT3 - CLI Backup  (0) 2022.01.31
CLI (Command Line Interface)  (0) 2022.01.31
Git2 - CLI 버전관리  (0) 2022.01.30
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함