분명히 말할 것 같지만, 버전 번호의 목적은 모든 사용자가 실행중인 소프트웨어의 버전을 쉽게 결정할 수 있도록하는 것입니다.
누구나 코드의 특정 반복에 액세스 할 수 있고 고유 식별자를 쉽게 판별 할 수없는 경우 해당 반복에는 고유 버전 번호가 있어야합니다. 나는 이것을 '첫 번째 규칙'으로 본다. 결과적으로, 개별 릴리스는 개별 버전 번호를 분명히 원할 것입니다.
그러나 더 많은 것이 등장합니다.
이를 확인하는 한 가지 방법은 각 커밋마다 버전 번호를 충돌시키는 것이지만 일반적으로 좋은 생각은 아닙니다. 상대적으로 작은 변경 작업을 수행하려면 몇 가지 커밋 / 반복이 필요할 수 있으며 0.0.1-> 0.0.2가 많은 누적 변경 사항으로 인해 0.0.2-> 0.0을 보는 것은 외부 세계와 혼동됩니다. .56 누군가 공란을 커밋하면 한 번에 하나의 파일 만 수정되고 기능은 바뀌지 않습니다.
"풀 릴리스 당 하나의 버전"에서 "각 커밋에 대한 하나의 버전"까지의 거리는 사용자, 다른 사용자 및 차이를 메우기 위해 사용할 시스템에 달려 있습니다.
나는 개인적으로 작은 프로젝트를 수행하는 데 익숙하며 다른 사람들이 사용하는 버전과 이들 각각에 대한 범프 버전이 될 때까지 git 해시를 사용하는 것을 기쁘게 생각합니다 (어떻게 손을 잡을 것으로 기대하는지에 관계없이). 그러나 대기업 및 대규모 프로젝트에서는 의미 버전 번호 이외의 항목이 있지만 릴리스 후보 번호 매기기와 같이 각 커밋보다 정확도가 낮습니다. 이것에는 장점이 있지만 복잡성을 더합니다.