<< 목차 >>
1. git reset과 revert 연습의 필요성
2. git reset --soft
3. git reset --mixed ( git reset )
4. git reset --hard
5. git revert
1. git reset과 revert 연습의 필요성
이번 프로젝트 당시 팀원이 본인 브랜치를 마스터 브랜치에 머지를 했는데, 충돌 해결을 그 전 버전으로 해버리셔서 내가 한 작업이 일부 날아가는 일이 있었다. 그 때는 제출 시간을 약간 넘긴 뒤라 조금 정신이 없어서 일단 history를 보며 다시 수정을 하게 되었다.
지금 생각하면 마스터 브랜치의 커밋을 hard로 되돌려 작업 디렉터리를 돌린 다음에 다시 팀원의 브랜치를 머지했으면 됐을 간단한 일이었는데 그 순간에는 이게 훨씬 어려운 일인거 같아서 다 일일히 수정하며 멘탈이 많이 나갔던 것 같다. 다음 번에 또 그 같은 실수가 없도록 오늘은 commit을 되돌리고 취소하는 reset과 revert에 대해 연습해보려고 한다.
2. git reset --soft
3. git reset --mixed(git reset)
4. git reset --hard
5. git revert
git revert는 과정이 조금 있었으므로 화면 기록해 놓기.
revert는 기본적으로 revert commit을 할 수 있는 상태를 만들어야 하기 때문에 add 이후에 하려면 오류가 난다! add 된 사항들을 commit해주거나, stash하라고 나온다.(커밋하기 싫으면 잠시 어따 저장해둘래..?같은 너낌)
나는 첫번째 commit하는 방식을 선택하여 "addOnly"의 글자를 추가하였으므로 commit도 addOnly로 해주었다. 그러고 나서 git revert < "3" 해시 > 를 해주었더니, 충돌이 났다고 한다.
cat 명령어로 확인을 해보니 2 커밋을 완료한 상태로 되돌아가려는 것 같다..!! 왜??
특강 때 메모해 둔 걸 찾아 보니 내가 중요하다고 생각했는지 별 세개를 붙여놓고 기록도 해놓았다. 보니까 기억이 났다. 그래도 써놓은 게 어딘가 싶다.. 즉 git revert < 커밋 3 > 이면 커밋 3이 내용이 없어지고(기록에는 남지만) 커밋 2의 상태로 되돌린 상태로 새 commit을 하는 것이다.
vi로 편집 상태로 들어가 충돌을 해결해 주었다. test.txt를 cat으로 확인해보면 aaa / bbb 로 입력이 되어 있다.
git revert를 다시 해보니 파일이 머지되지 않았다고 한다. git status로 확인을 해보면
이 상태에서 git add test.txt를 해 주고, 다시 git status를 확인하면
all conflicts fixed 가 나오면서 git revert --continue를 하라고 한다. git revert --continue 를 입력하면
revert commit명을 입력하는 창이 뜬다! 원래 적혀 있던 대로 revert "3" 그대로 하려고 삽입모드에 들어가지 않고 그대로 :wq를 눌러 나와주었다.
그러고 나서 log를 확인해보면 그 전 커밋 이력도 남아 있고, 새로운 revert "3"이라는 커밋도 생겼다. test.txt의 내용도 확인해보자.
아까 내가 충돌을 해결한 그대로 커밋 2 이후의 작업으로 잘 바뀌었다는 것을 알 수 있다.(바뀐 건 충돌을 해결하면서 그 때 바뀐 거지만..!)
reset을 하면 정확히 어떤 커밋으로 어떤 상태로 되돌아가는지가 늘 헷갈렸는데 이번에 확실히 정리할 수 있었다..!!
다음 번에 팀원이 머지를 잘못한다거나 하는 일이 생기면 내가 멋있게 나서서 이거 이렇게 하는거야!! 하고 알려주고 싶다. 뭐든 잘하는 멋있는 사람이 되기에는 한참 멀었지만 한 발씩 다가가고 있다!
'STUDY > GIT' 카테고리의 다른 글
[TIL] 포크 저장소와 내 로컬을 동기화하기 (0) | 2023.06.18 |
---|---|
[TIL] 풀리퀘스트로 코드 리뷰하기! (0) | 2023.06.13 |
[TIL] pull request 연습. (0) | 2023.05.26 |
[TIL] 깃 에러 해결(README 충돌) (2) | 2023.05.24 |
[TIL] GitHub Repository 정리(IntelliJ 파일 정리하기) #내 잔디 돌려줘.. (1) | 2023.05.20 |