source

깃 태그에 대한 표준 명명 규칙이 있습니까?

ittop 2023. 5. 2. 22:57
반응형

깃 태그에 대한 표준 명명 규칙이 있습니까?

사용하는 프로젝트를 많이 봤습니다.v1.2.3git에서 규칙으로 됩니다.나는 또한 약간의 사용을 보았습니다.1.2.3공식적으로 승인된 스타일이 있습니까? 아니면 둘 중 하나를 사용하는 것에 대한 좋은 주장이 있습니까?

GitHub family의 Tom Preston-Werner가 작성한 Semantic Version 1.0.0 버전은 다음을 다루는 하위 사양을 참조하십시오.

태그 지정 규격(SemVerTag)

이 하위 사양은 버전 제어 시스템(Git, Mercurial, SVN 등)을 사용하여 코드를 저장하는 경우에 사용해야 합니다.이 시스템을 사용하면 자동화된 도구가 패키지를 검사하고 SemVer 규정 준수 및 릴리스 버전을 확인할 수 있습니다.

  1. 버전 제어 시스템에서 릴리스에 태그를 지정할 때 버전에 대한 태그는 "vX.Y"여야 합니다.Z"(예: "v3.1.0").

그러나 논의 끝에 이 문제는 제거되었으며 SemVer 사양의 최신 버전(작성 당시 2.0.0)에는 더 이상 존재하지 않습니다.이후 같은 장소에서 진행된 토론 스레드는 더 깊이 있게 진행되었고, 새로운 Is "v1.2.3"이 SemVer의 FAQ에 추가되었습니다.master분기, 비록 작성 당시(2년 이상이 지난 후) 이 변경 사항은 공식적으로 공개된 사양에 아직 존재하지 않습니다.

다음과 같은 두 가지 주요 규칙이 있습니다(릴리스 자체에 번호를 매기는 합리적인 표준도 준수한다고 가정).

  • v1.2.3
  • 1.2.3

v1.2.3Git 문서(및 Mercurial 문서)가 예제에서 해당 형식을 사용하고, Linux 커널과 Git 자체와 같은 여러 "권한 있는 기관"이 이 형식을 사용한다는 것입니다. ( 언급된 시맨틱 버전은 사용했지만 더 이상 사용하지 않습니다.)

1.2.3Gitweb 또는 GitHub가 자동으로 양식의 tarball 또는 zip 다운로드를 제공할 수 있는지 여부packagename-$tag.tar.gz(그리고 저는 타르볼이 이름 지어져서는 안 된다는 것이 꽤 확립되어 있다고 생각합니다.package-v1.2.3.tar.gz )을할 수 있습니다git describe번호를 합니다. tarball 버전를직생접다니합 성호번다▁directly.정식 릴리스 프로세스가 없는 경량 프로젝트의 경우 이러한 가능성이 매우 편리할 수 있습니다.또한 시맨틱 버전 관리는 버전 번호 지정을 위한 유일하거나 보편적으로 허용되는 표준이 아닙니다.할 만한 프로젝트들은 "GNOME"를 합니다.1.2.3태그 명명

이런 입장들을 정리하기에는 아마 너무 늦은 것 같습니다.항상 그렇듯이, 일관성을 유지하고 이치에 맞게 행동하세요.


업데이트: 이 댓글에 언급된 것처럼 GitHub은 이제 태그에서 'v'가 제거된 타르볼 이름을 제공합니다.

앞의 'v'에 대한 이유는 역사적인 것입니다.이전 SCCS(cvs,rcs)는 태그 식별자와 수정 번호를 구별할 수 없습니다.수정 번호를 탐지할 수 있도록 태그 식별자가 숫자 값으로 시작되지 않도록 제한되었습니다.

아는 바 없는데요.
이 "Git는태같은이름하분의기동를시허로에용않것므이있면다만가분고, 약당신이지를기만그지와을"라는 분기를 가지고 ,1.1을 위하여1.1 "작합니다동" . 태그를 붙이지 마십시오.1.1예를 들어 "을 사용합니다.v1.1"

새 패키지 관리자는 접두사 없이 버전에 태그를 지정할 수 있습니다.v(PHP 프로젝트의 작곡가처럼).SemVer 2.0에는 태그 사양이 없습니다.그것은 갈등을 피하기 위해 의도적으로 행해진 것입니다.그러나 접두사를 추가하는 것이 좋습니다.v문서 및 텍스트 참조에서.: 형식 예형 식v1.0.4version 1.0.4또는ver. 1.0.4문서화하면 충분히 장황하고 우아합니다.

저는 어떤 기준도 모릅니다.저는 단순히 태그 이름을 선택하여 부착할 수 있습니다.

VERSION = `git describe --tags`

내 빌드 스크립트에서.따라서 태그 명명 규칙은 실제로 프로젝트의 버전 명명 규칙에 따라 달라집니다.

릴리스별 작업에 분기와 태그를 사용한 후 실제 릴리스를 사용합니다.

o---o-----o---o---o--- ...   master
     \   /       /
      \ /       /
       o-------o--- ...      1.6 branch

모든 개발자는 자신들이 하려는 작업이 마스터에만 적용 가능한지 아니면 브랜치와도 관련이 있는지에 대해 정신적인 결정을 내립니다.분기에 대한 변경 내용은 마스터에서 다시 병합되지만 마스터의 일부 변경 내용은 분기에 적용되지 않습니다(즉, 이 예에서는 1.6 릴리스를 대상으로 하지 않음).

릴리스할 준비가 되면 태그를 지정한 후 마지막으로 다시 병합하고 분기와 동일한 이름으로 태그의 이름을 지정하지만 "1.6-release", "1.6-beta" 또는 "1.6-rc2"와 같은 특정 버전에 대한 추가 식별자를 사용합니다.

... ------o---o---o--o---o--- ...   master
         /       /
        /       /
... ---o------(*)--- ...      1.6 branch
          1.6-release

제가 아는 모범 사례는 하나도 없습니다.다음은 몇 가지 링크입니다.

버전 Versioning)0.0.1,v0.2.1 것이 접근법으로 수 (은 ...을 하지만) 문제추과손보잡것는접여로수으겨질있다니습법만근지타을한당하사용통이적보▁(▁...)-))▁(▁maybe▁hand만▁...▁approach▁plausible)v- @answer 항목을 참조하십시오. @VonC answer)

언급URL : https://stackoverflow.com/questions/2006265/is-there-a-standard-naming-convention-for-git-tags

반응형