반성문
그리 멀지 않은 옛날에 겪었던 일입니다.
상황은 이렇습니다.
뭔가 핫픽스도 잘 처리하고 오늘 정말 열심히 살았다. 좋았다 이런 생각 들었는데, develop 브랜치에서 코드가 사라졌다고 전화가 울렸습니다.
(체리픽은 특정 커밋만 가져오는 기능입니다.)
코드가 사라진 이유는 revert 이력이 develep 브랜치로 들어갔고 코드를 지웠기 때문입니다.
지금 생각해보니, 과거의 일이 미래에 영향을 주는 타임 리프 영화 같습니다.
git flow를 보면, 일단 master에서 생성한 hotfix 를 브랜치를 master와 develop에 각각 넣습니다.
그럼 나도 hotfix에서 바로 넣었으면 괜찮았을까? 그래도 지워졌을것 같다.
master 브랜치를 reset hard 한다?
브랜치 복사하고 잘 사용하면 될 것 같기는한데 가영이가 보였다.
Git flow - get rid of a particular feature
이분도 생각은 나랑 비슷하다 - revert이력 남아서 역머지 하면 코드 지워집니다. 그래서 체리픽으로 넣으세요
음 revert는 git의 기능이고 역머지할때 문제있다고 쓰지말라는 것은 아닌것 같다.
문제는 특정 커밋 A가 revert된 것이다.
revert 된 A 커밋은 배포되면 안되는 내용이다. 따라서 지금은 master에는 merge할 수 없다.
그래서 생각한 방법은