사수 퇴사 어언 2달...
사실 나도 아기선배도...
둘 다 revert나 reset 어떻게하는지 잘 몰라서 무서워서 잘 못했다.(맨날 사수가 옆에서 말해주고 우리는 아바타로 키보드만 침)
최대한 틀리지 말자! 고 생각하고 정신 차리면서 살거나, 여태까지는 틀려도 commit message 정도 틀렸지 브랜치 자체를 잘못 갖다가 머지하거나 하는 일은 없어서 어케저케 살았는데...
드디어... 그 날이 와버리고 만 것입니다...
내가 정신 나가서 develop으로부터 머지해가지고 나와 아기선배의 작업분이 섞여버린 채, api 개발 안 된 부분 front가 먼저 배포 나가서 화면이 날아가는 그런 일이 벌어지고 만 날...
이번에도 섞인 작업분 자체의 코드는 운영보수 건이어서 사실 그렇게 많지 않았기 때문에 라이브는 일단 롤백을 시킨 후, 나도 아기선배도 "그냥... 다시 작업해서 머지할까요?"라고 했지만 언제까지고 이렇게 살 수는 없지 않은가!!! 라는 생각이!!! 나에게!!!
그래서 백엔드 칭구들 쪽에 가서 열씨미 배웠다.
git reset
은 말 그대로 reset이어서 커밋했던 건을 초기화시키는 것이다.
다른 브랜치로 머지를 시켰거나 하면 revert는 안 되고 reset만 가능하다.
git revert
는 취소를 했다는 commit을 다시 한 번 남기는 것이다.
이 경우에는 로그가 남으니까 나중에 살펴볼 때 기록이 남아있다는 장점이 있다.
내가 제일 걱정? 우려?되었던 지점은 revert를 시키면 내가 했던 작업분이 날아가는 것인지 아님 남아있는 것인지를 모르겠어서 막 우왕좌왕 했었다.
이번에 해 보면서 알게 되었던 점은 revert를 시키면 내가 했던 작업이 새로 추가된 코드 상태로 남아있게 된다는 점이었다.
즉, 10줄의 코드가 있었고 여기에 내가 10줄의 코드를 더 작성하여 총 20줄이 된 상태에서 commit & push를 한다.
이러면 총 20줄의 코드 상태.
여기에서 내가 commit & push 한 것을 revert 시키면
10줄의 코드가 최종버전인 상태로 돌아감과 동시에 내가 추가해서 작성했던 10줄의 코드는 아직 커밋이 되지 않은 상태로 남아있다.
이제... 이해했어...
Of course, the best option is not doing things wrong...