안녕하세요.
2013년 5월 9일 목요일 오전 9시 0분 41초 UTC+9, Brian Moon 님의 말:
Fast forward 머지 케이스에서 머지 후에 topic branch 제거했는데, recursive 머지 케이스에서는 머지 후에 topic branch 제거하지 않았습니다.
따로 어떤 기준이 있는지 궁금하네요. 이전 회사에서 사용하던 VCS 및 workflow에서는 한번 만든 branch를 삭제하는 일은 드물었습니다.
Branch 생성 비용 만큼 삭제 비용도 컸고, 나중에 작업 이력을 검토할 목적으로 남겨놨던 것으로 기억합니다.
어떠한 브랜치를 머지한 후에는 해당 브랜치를 제거해도 되고 안해도 상관 없습니다. 즉, 동영상 예제에서는 궁금증 유발 차원에서 하나는 지워보고 하나는 지우지 않았습니다. 기준은
- 이 브랜치가 계속 필요한가?
정도로 생각하면 됩니다. Git 은 브랜치 생성 및 삭제 비용이 상당히 작기도 하거니와 FF 머지가 아닌 경우에는 하나의 브랜치를 기준으로 머지한 경우에는 머지 커밋에 '어느 브랜치를 머지했다' 고 커밋 메시지로 남기 때문에 딱히 이력 검토를 위해 남길 필요도 없습니다.
즉, master, release 등의 주요 브랜치는 지우면 안되겠죠. 그러나 topic 같은 일회성 브랜치들은 적절한 시기에 지워주면 됩니다. (예. 머지 완료 후, 테스트 완료 후, 릴리즈 완료 후)
덧글: 여전히 gitk가 보여주는 그래프는 직관적으로 이해하기 어렵네요.
저도 처음에는 gitk 의 문제인줄 알았습니다. 그런데 두 가지 펙터때문에 이해가 어려웠다고 생각합니다.
a. git 에서 사용하는 컨셉과 구조가 아직 익숙하지 않아서
b. gitk 모양새가 약간 조악해서
저는 예전에 ClearCase 를 사용했는데 (4년 정도) 거기 history 그래프도 처음에 약간 보기 어려웠던걸로 기억합니다. 자주 써보시면 딱 문제는 없습니다. 더불어 개인적으로 gitk 기준으로 학습을 해야 한다고 생각하는 이유는
- gitk 는 git 개발 환경 어디에서든지 사용할 수 있기 때문이다
정도가 아닐까 합니다. 다른 대체툴을 사용하면 남의 자리에 가서 작업을 도와줄 때 항상 새로운 툴을 깔아야 하거든요. ㅋㅋ