main을 checkout한 상태에서 이런식으로 #revert 되돌리기 용 이렇게 적어보자.
변경사항 stage에 올려주자.
머 이런식으로 적고 commit 해준다.
이렇게 만들어졌다.
그런데 이걸 되돌리고 싶다.
즉 origin/main이 있는 시점으로 되돌아가고 싶다. 그러면?
즉 커밋 0ccc877번을 되돌리고 싶다. 그러면?
main을 checkout한 상태에서 main을 클릭하고 오른쪽마우스를 클릭한다.
커밋 되돌리기를 클릭한다.
예
이렇게 위에 커밋이 하나 더생긴다.
다시 python으로 가보면?
아까 적었던게 사라져있다.
이 상태에서 다시 아까 #revert 되돌리기 용 이라고 적은 상태로 돌아가고 싶다면
reset방식으로 되돌아간다.
reset연습 부분을 클릭하고 오른쪽마우스클릭해서 '이 커밋까지 현재 브랜치를 초기화' 하면 된다.
Hard 모드로 초기화 하자.
예
다시 돌아가졌다.
다시 python도 가보면
되돌아왔다.
이게 revert의 사용법이다.
revert는 커밋을 남긱고 되돌리는데 모양도 깔끔하게 만든다.
대신 충돌이 나기가 쉽다.
커밋 되돌리기 하면
예
다시 아까
이 상태로 되돌아와진다.
Git branching 사이트에서 다시 설명해보겠다.
라는 사이트에 들어가자.
git commit을 두번 치고 이 상태로 만들자.
만약 c3를 되돌리고 싶다면?
git revert C3를 써주면 된다. 여기서는 C3'라고 적혀있지만 사실 C2랑 똑같은 의미이다.
git reset HEAD~2라고 하면 C2로 되돌아가고 C3의 내용은 영원히 사라진다. 이게 reset이다.
요약하자면 revert는 commit을 보존하면서 C3 커밋은 보존이 되지만
reset은 아예 영구적으로 사라지게 만들어버린다.
즉 revert는 내용만 되돌릴 수 있는 좋은 되돌리기 방법이다.
'기술노트 > 깃허브' 카테고리의 다른 글
stash를 이용한 작업 내용 저장 (0) | 2021.01.18 |
---|---|
Revert를 이용해서 여러가지 commit을 되돌리기 (0) | 2021.01.17 |
branch로 commit 되돌리기 (0) | 2021.01.15 |
reset으로 commit 되돌리기 (0) | 2021.01.14 |
충돌 방지 (0) | 2021.01.13 |