일단 필요없는 파일들 정리해야겠다는 생각에 호다닥 정리에 정리를 하고 커밋했는데 충돌했다.
이전꺼를 다시 되돌려서 풀을 받아야 하니까!!!
버전을 이전으로 되돌려보자..!!!
이전 버전으로 되돌리는 방법
대표적인 방법은 reset를 이용하거나 revert를 이용하는 두 가지 방법이 있다고 한다.
1. reset
아직 원격 저장소에 push하기 전이라면 reset을 사용할 수 있다.
없애고 싶은 커밋이 있을 때, reset을 이용하면 해당 커밋을 흔적도 없이 지울 수 있다.
$ git reset --옵션 커밋해시
옵션으로는 hard, soft, mixed 등이 있다.
1) hard
돌아가려는 커밋 이후의 모든 내용을 지워 버린다.
staging area와 working directory 모두 돌아가려는 커밋과 동일해진다.
2) soft
돌아가려는 커밋으로 되돌아가고, HEAD가 돌아가려는 커밋을 새롭게 가리키게 된다.
staging area와 working directory는 아무런 변화도 없다.
3) mixed
돌아가려는 커밋으로 되돌아가고, HEAD가 돌아가려는 커밋을 새롭게 가리키게 된다.
staging area는 돌아가려는 커밋과 동일해지고, working directory는 아무 변화가 없다
2. revert
이미 원격 저장소에 push한 상태라면 reset은 사용할 수 없고 revert를 사용해야 한다.
(이것이 reset과 revert의 차이!!)
->나는 이미 push 하고 pull request할 때 충돌이 난거라서 revert 사용
1)git log로 해시주소를 파악
git log 찍고, 커밋이 다음의 commit1>2>3의 순서로 발생했다고 해보자.
오른쪽에 뜨는 것이 git hash이다.
commit3 54c6547
commit2 a516d21
commit1 4567289 // 되돌아가려는 커밋
2) git revert로 버전 되돌려주기
내가 돌아가려는 커밋이 commit1이면,
commit3를 먼저 revert하고 이후 commit2를 revert하는 방식으로 순차적으로 진행해야 한다.
아래와 같이 입력하면 된다.
$ git revert 54c6547
$ git revert a516d21
3) git commit 해주기
결론
넘모 당황해서 찾아보고 해결하느라 캡쳐할 여유가 전혀..없었..^_^...
바로 전에 내가 풀리퀘하고 머지를 해서
내 로컬 저장소도 한번 더 synk해주고 git pull origin main을 해줘야 한다는 생각을 미처 하지 못했다.(지금 생각하면 참 바보 같...)
앞으로는 풀리퀘하고 머지하면 반드시 synk 해주고 git pull origin main 해줘야지!!
왜 다들 버전관리시스템을 말하는지 알 거 같다. 요 녀석 때문에 협업의 과정이 복잡해지긴 했지만,, 그래도 버전을 돌리면,, 되잖느항?...
'2022년_동국대학교 > OSSP 팀플 일지' 카테고리의 다른 글
[OSSP] 중간 발표 및 피드백 (0) | 2022.11.20 |
---|---|
[OSSP]코드분석 올리기(ft. 개쫄보의 깃 협업 풀리퀘&머지) (0) | 2022.11.06 |
[OSSP]깃 협업하기_Pull Request(PR) 보내는 방법 : Contribution 하기 (0) | 2022.11.06 |
[OSSP]깃 협업하기_upstream (0) | 2022.11.06 |