피처 브랜치를 사용하는 팀에서 git으로 작업 할 때 종종 히스토리의 브랜치 구조를 이해하기가 어렵습니다.
예:
기능 분기 기능 / make-coffee 가 있고 기능 분기 와 병렬로 마스터 에서 버그 수정이 계속 되었다고 가정 해 봅시다 .
역사는 다음과 같습니다.
* merge feature/make-coffee
|\
| * small bugfix
| |
* | fix bug #1234
| |
| * add milk and sugar
| |
* | improve comments
| |
* | fix bug #9434
| |
| * make coffe (without milk or sugar)
| |
* | improve comments
|/
*
문제
언뜻보기에, 어느 쪽이 기능 분기인지 알기가 어렵습니다. 나는 어느 쪽이 어떤 것인지 생각하기 위해 일반적으로 양쪽에서 여러 의견을 찾아야합니다. 여러 피쳐 브랜치가 병렬로 (특히 밀접하게 관련된 피쳐를 위해) 또는 피쳐 브랜치와 마스터 사이에 양방향으로 병합 된 경우 더 복잡해집니다.
반대로, Subversion에서는 브랜치 이름이 히스토리의 일부이기 때문에 훨씬 쉽습니다. 따라서 커밋이 원래 "feature / make-coffee"에 이루어 졌다는 것을 알 수 있습니다.
Git 은 커밋을 만들 때 (작성자, 날짜 등과 함께) 커밋 메타 데이터에 현재 브랜치 이름을 포함시켜 이것을 쉽게 만들 수 있습니다. 그러나 git은 이것을하지 않습니다.
이것이 수행되지 않는 근본적인 이유가 있습니까? 아니면 아무도 그 기능을 원하지 않았다는 것입니까? 후자의 경우, 이름을 보지 않고 역사적 지점의 목적을 이해하는 다른 방법이 있습니까?