git branch와 tag의 구분

git의 branch와 tag의 구분이 걱정되었으므로 Kubernetes 프로젝트를 예로 정리해 보았다. 프로젝트마다의 결정 일이라고 생각하기 때문에, 반드시 이 방법이 옳다고 하는 것은 아니다. 하나의 참고로 봐주셨으면 좋겠다.

branch란?



브랜치이란 개발의 본류에서 분기하고 본류의 개발을 방해하지 않고 작업을 계속하는 기능

태그란?



태그은 역사상 중요한 포인트를 표시하는 기능입니다. 자주 있는 것은, 이 기능을 (v 1.0 등) 릴리스 포인트로서 사용하는 것.

Kubernetes 프로젝트에서 branch 및 tag 사용



이 프로젝트에서는 모든 릴리스 중 최신 코드가 master에 있습니다. 그리고 각 릴리스에서 유지 관리되는 최신 코드는 release-x.xx에 있습니다. 예를 들어 git clone http://https://github.com/kubernetes/kubernetes 또는 git clone -b release-1.19 http://https://github.com/kubernetes/kubernetes로 로컬로 복제하여 빌드해도 작동하는 버전을 빌드 할 수 없습니다. 즉, 개발 도상의 코드이기 때문이다.

태그는 v1.18.4 및 v1.18.5와 같은 각 마이너 버전 아래의 패치 버전에 대해 태그가 설정됩니다. 이 태그를 사용하여 복제하려면 git clone -b <tag名> http://https://github.com/kubernetes/kubernetes로 복제합니다. 혹은 마스터를 클론한 후, git checkout -b v1.18.4 등으로 하는 것으로, 태그가 부여된 시점의 코드를 사용할 수 있다. 이것에 의해, 릴리스된 시점의 코드를 취득할 수 있다.

브랜치 목록을 본 모습



태그 목록을 본 모습



요약



branch는 그 이름대로 분기를 의미합니다. 따라서 branch를 작성한 후 branch에 대한 업데이트를 계속할 수 있습니다. 한편, tag 를 지정해 branch 와 같이 클론이나 체크아웃을 할 수 있어도, 하지만, tag 에 갱신을 가할 수 없는, 이른바 스냅샷과 같은 존재로 간주할 수 있다.

참고 자료


  • Git을 사용한 분산 개발 관리 7 – 분기 및 태그 사용, htps : // v.ぁsss d. jp / r chi c ぇ s / gi to b ran ch g /
  • 좋은 웹페이지 즐겨찾기