기술노트/깃허브

branch로 commit 되돌리기

반응형

# ver 충돌 방지용만 적혀있었던 것에 내용을 추가해보겠다.

 

요런식으로 뜨는데 stage에 올리고 commit해준다. 

 

 

커밋하였다.

 

저번에는 origin/main이 있는 곳으로 되돌아가려면 '이 커밋까지 현재 브랜치를 초기화' 이걸로 되돌아갔는데

 

이번에는 브랜치를 추가해서 되돌아갈 것이다. 일단 main을 checkout한 상태에서 origin/main이 있는 부분을 클릭한다. 

그리고 오른쪽 마우스를 클릭한다. 

 

이렇게 뜰텐데 브랜치를 눌러준다.

 

 

 

요렇게 적고 브랜치를 생성해보겠다. 

 

자동으로branch가 생겼으며 자동으로 checkout까지 된 상태다. 

다시 python으로 되돌아가보면

 

아까 추가한 내용이 없어져있다. 

 

그렇지만  다시 main을 checkout하면 다시 나타나니 이점은 걱정할 필요 없다.

 

아무튼 branch-use-commit을 checkout한 상태에서 위 사진처럼 작성하고 commit 해준다.

 

그러면 이렇게 뜰 것이다. main이 원래 있었는데 되돌아가서 새로 만들어줘서 이렇게 바뀌었다.

 

그리고 main으로 돌아가서 일단 push를 해준다. 

 

방금 만든  branch-use-commit을 main에 반영해야겠다하면 merge를 해주면된다. 

main을 checkout하고 난 뒤 branch-use-commit을 클릭하고 오른쪽마우스를 눌러서 '병합'을 해준다. 

 

이렇게 뜨는거 체크박스 누르지말고 확인만 눌러준다. 

그러면 이렇게 층돌이 나지만 당연히 충돌이 날 것이라 다들 예상했을 것이다.

 

아까 main을 checkout했고 branch-use-commit에 적었던 것이 main에 적은것보다 내용도 자세히 적었다. 따라서

 

얘 클릭해주고  오른쪽 마우스 클릭해서

 

충돌해결을 눌러주고 '저장소' 것을 사용하여 해결을 선택한다. 

왜 '내것'으로 안하냐면 지금 main이 checkout된 상태이기 때문에 main이 현재 '내것'이고

branch-use-commit가 '저장소' 이다.

그런데 branch-use-commit가 좀 더 내용이 자세하게 적혀있어서 branch-use-commit로하자고

앞에서 말했기 때문에 '저장소'로 해줄 것이다.

 

그러면 

자동으로 스테이지에 올라가지기때문에 바로 커밋해주면된다. 

 

이때 커밋내용도 알아서 적혀있기 때문에 따로 건드리지 않고 커밋해준다. 

 

이렇게 merge가 된 것을 볼 수 있다. 

이렇게 하면 장점은 push를 할 때 아무 문제가 생기지 않는다. 

저번에는 강제푸시를 해야했는데 이번에는 그럴 필요가 없다. 

 

그리고 이제 branch-use-commit이라는 branch는 필요 없기 때문에 삭제해준다.

삭제해도 아무 문제없다. 

 

branch-use-commit에 오른쪽 마우스클릭해서 삭제하면된다. 

 

삭제하면 이렇게 되고, 이제 얼마든지 되돌아가고 싶은 지점을 클릭해서 오른쪽 마우스클릭해서 branch 생성을 하면

언제든지 그 시점으로 되돌아갈 수 있다. 이 방법이 오류도 안나고 좋다. 

 

장점은 쉽고, 기록이 다 남아있다는 것이며

단점은 tree가 지저분해진다는 단점이있다. (혼자서 하는거면 상관없지만,

여럿이 협업하는 경우에는 좀 ... 여기까지 ㅋㅋ)

 

다음에는 revert를 이용해서 commit을 되돌리기 할건데 이거는 난이도가 높다는 단점이 있다. 

'기술노트 > 깃허브' 카테고리의 다른 글

Revert를 이용해서 여러가지 commit을 되돌리기  (0) 2021.01.17
revert를 사용하여 commit 되돌리기  (0) 2021.01.16
reset으로 commit 되돌리기  (0) 2021.01.14
충돌 방지  (0) 2021.01.13
병합(2)  (0) 2021.01.12