소규모 팀을위한 Git 워크 플로우


11

소규모 팀에서 구현하기 위해 git workflow를 진행하고 있습니다. 워크 플로우의 핵심 아이디어 :

  • 모든 팀원이 쓸 수있는 공유 프로젝트 마스터가 있습니다.
  • 모든 개발은 기능 지점에서만 수행됩니다.
  • 기능 분기는 지점 작성자 이외의 팀 구성원이 코드를 검토합니다.
  • 기능 분기가 결국 공유 마스터에 병합되고주기가 다시 시작됩니다.

이 기사에서는이주기의 단계를 자세히 설명합니다.

https://github.com/janosgyerik/git-workflows-book/blob/small-team-workflow/chapter05.md

이것이 의미가 있습니까? 아니면 뭔가 빠졌습니까?

답변:


16

나는 git flow branching 모델을 좋아한다 . 마스터 브랜치는 대부분 홀로 남아 있으며 릴리스 만 포함합니다. 개발 분기는 항상 안정적이어야하며 기능 분기는 중단 될 수 있습니다.

개발을 기능 분기에 통합 하고 기능 분기를 개발에 병합 하여이를 지속적인 통합 과 결합 할 수도 있습니다. 물론 일이 잘되고 깨지지 않는다고 확신 할 때만 무언가를 개발에 병합해야합니다.


내가 이해하는 것처럼 git flow와 지속적인 통합은 대체 작업 방법이며 실제로 결합 할 수 없습니다. git flow에서 코드는 기능이 완료된 경우에만 개발로 병합됩니다. 지속적인 통합에서 모든 코드는 새로운 기능을 즉시 제공하지 않더라도 매일 최소 한 번은 공유 지점으로 병합됩니다.
bdsl 2016 년

7

Continuous Integration이라는 주제가 빠진 것 같습니다. 모든 개발 설정의 일부 여야합니다.

기능 분기를 사용하면 지속적으로 통합하지 않고 기능이 완료된 후에 만 ​​문제가 발생합니다.

분기 된 기능이 수명이 짧은 경우이 기능을 사용할 수 있지만 분명히 고려해야 할 사항입니다.

다른 대안은 각 기능 분기마다 CI 빌드를 설정하는 것입니다. 이것은 확실히 도움이되지만 통합이 아닙니다. 기능 A 또는 기능 B에 나타나지 않지만 기능 A & B를 통합하는 순간에 첫 번째 버그를 발견하면 이는 분명해집니다.

세 번째 대안은 CI 빌드의 일부 통합 브랜치에서 병합하는 것입니다. 이것은 진정한 통합이며 실제로 작업이 다소 분리 된 경우 git과 합리적으로 잘 작동하지만 빌드 중에 병합 충돌이 발생하여 빌드가 실패합니다.


마스터 분기를 CI와 연결하여 기능 분기 병합이 자동화 된 비 회귀 테스트에 실패한 경우 기능 분기 병합을 거부 할 수 있습니다. 팁 주셔서 감사합니다. 끝에 "팁"섹션을 추가하고 이에 대해 언급하겠습니다.
janos

1
물론, 그러나 말했듯이, 이것은 지속적인 통합이 아니라 기능상 통합이 낫지 만, 동일하지는 않습니다.
Jens Schauder

1
피처 브랜치는 안정적 일 필요가 없기 때문에 매우 유용하다고 생각합니다. 즉, 한 번의 큰 커밋 대신 자주 커밋 할 수 있습니다.
Arjan

일정 (CI 시스템)으로 실행되는 자동화 된 빌드 프로세스는 필수 불가결합니다. 컴파일 문제를 빨리 찾아서 해결할 수 있도록 자주 실행해야합니다. 개발자 팀은 빌드 실패에 가장 높은 우선 순위를 부여해야합니다. 이러한 유형의 문제가 처음 나타날 때 해결하는 것이 훨씬 쉽습니다.
Nathan Pilling

1
CI를 사용하는 프로젝트 (현재로서는 사용할 수없는 몇 개의 레거시 프로젝트가 있음)의 경우, 모든 실제 프로젝트를 마스터하기 위해 모든 것을 약속합니다. 레거시 프로젝트의 경우 git flow branching 모델을 사용합니다. 피처 브랜치는 CI 차단제이며, 요청이있을 때뿐만 아니라 계속해서 통합하기가 더 어렵습니다. 우리는 기능에 대해 계속 연구하고 있으며 마지막 과제는 기본적으로 기능을 켜는 것이지만 코드는 항상 프로젝트에 있습니다.
Elliot Blackburn

1

gitflow 또는 Twgit에 영감을 얻을 수 있습니다 .

gitflow는 접근 방식을 다음과 같이 요약합니다.

Git 확장은 Vincent Driessen의 브랜칭 모델에 대한 고급 저장소 작업을 제공합니다.

Twgit은 다음과 같이 설명합니다.

Twgit은 Git 리포지토리의 기능, 핫픽스 및 릴리스를 관리하기위한 무료 오픈 소스 지원 도구입니다. 설명서에 설명 된 분기 모델을 채택하기위한 간단한 고급 명령을 제공합니다. 지원되는 OS : Debian / Ubuntu Linux, Mac OS X

두 도구 모두 github 에서 사용할 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.