소규모 팀에서 git을 올바르게 사용하기


14

하나의 서버가 라이브 응용 프로그램을 실행하는 약 5 명의 개발자로 구성된 소규모 팀에서 git을 올바르게 사용하는 가장 쉬운 방법은 무엇입니까?


5
이 경우 git을 사용하여 질문합니다. 하나의 전용 서버가있는 한 방에 모든 사람이있을 경우 분산 소스 제어를 사용하면 이점이 없습니다. 그리고 여전히 커밋 위에 당기기 / 밀기의 오버 헤드가 있습니다.
Euphoric

10
@Euphoric은 툴링 및 워크 플로에 따라 다릅니다.

3
@ONOZ 현재 작업 방식에 대해 자세히 설명하십시오.

22
@Euphoric-엄청나게 좁은 태도. 분기 및 병합의 용이성을 위해 단독으로 git또는 hg대부분의 중앙 집중식 VCS를 능가합니다. DVCS가 얼마나 훌륭한 지 사람들이 끊임없이 고민하는 사람들에 대해 사람들이 화가 났음을 이해할 수 있지만 모래에 머리를 파묻고 DVCS를 사용하지 않고 다른 것보다 효율적인 워크 플로를 개발할 수 있다는 것을 인정하지 않습니다.
Mark Booth

8
@Euphoric, Git을 사용한다고해서 소스 제어가 "분산"된 것은 아닙니다. 소규모 팀에서 일하고 Git을 사용하고 있으며 여전히 중앙 저장소가 있습니다. 그것이 당신이 추진하는 것입니다. DVCS를 사용한다고해서 모든 사람이 중심점이없는 다른 모든 사람을 끌어 당기는 것은 아닙니다.
Kyralessa

답변:


11

지점을 만들 것을 제안합니다.

  • 생산
  • 석사
  • 현지

생산 지점은 "실시간"지점입니다. 현재 사용중인 응용 프로그램입니다.

업데이트가 필요할 때 개발자는 마스터 분기를 로컬 분기로 끌어 올 수 있습니다. 보다, 코딩을 시작할 수 있습니다. 결국 개발자 로컬 지점에서 마스터로 당기고 밀어 넣으십시오. 프로젝트 관리자는 마스터 브랜치를 살펴볼 수 있습니다. 그것을 테스트하십시오. 준비가되면 제작을 마스터와 병합 할 수 있습니다. 이제 새로운 소프트웨어가 생겼습니다.


컨설팅 또는 엔터프라이즈 상황에있는 경우 UAT 지점을 가질 수도 있습니다.
John MacIntyre

동의합니다.이 워크 플로를 사용하고 있습니다.
Cheung

로컬 지점과 마스터 지점의 차이점이 무엇인지 자세히 설명해 주시겠습니까? 작동하는 프로덕션 버전을 원하는 이유를 알 수 있지만 변경 사항을 가져 오기 / 푸시하면 로컬 지점이 없어도 자동으로 병합됩니까?
Luc

1
로컬 브랜치는 XXX-feature-name으로 이름을 지정할 수 있으므로 프로덕션에서 원하는 모든 기능 브랜치의 병합으로 마스터 브랜치를 보유합니다. 예 : 일부 기능이 포함되지 않았을 수 있습니다.
sensorario

7

필요할 때 간단하게 시작하고보다 복잡한 워크 플로를 구축하십시오.

당신이 무엇을 하든지, 성공적인 Git 브랜칭 모델을 사람들이 가장 먼저 보게된다면 혼동하고 압도 할 것입니다. 더 많은 경험이 있으면 나중에 이것을보십시오.

중앙 git저장소로 시작 하여 프로덕션 및 테스트 빌드를 포함한 모든 사람이 그로부터 복제하는 것이 좋습니다.

자식 저장소 내에서 production지점과 지점을 만듭니다 test.

개발자는 완료되고 병합 될 때까지 자체 로컬 또는 원격 기능 지점에서 작업해야합니다 master. 여기 test에서 테스트 환경으로 배포하기 위해 지점 으로 병합 될 수 있으며 테스트를 통과하면 production지점 으로 병합 될 수 있습니다 .

그렇게하면 항상 새롭고 테스트되지 않은 것, 테스트되었지만 아직 프로덕션에 배포되지 않은 것, 실제로 프로덕션에있는 것을 볼 수 있습니다.


흥미로운 의견으로, git branching model git의 거래 차단기 라고 생각하지만 , git 이외의 사용자에게는 그렇게 분명하지 않을 수 있습니다.
wirrbel

@wirrbel로 그런 일이 없다 당신이 사용 욕망 어떤 분기 모델을 구현할 수 있습니다, 자식 분기 모델 워크 플로우에 맞게. 여기서 제안하는 것은 성공적인 Git 브랜칭 모델 보다 간단하고 경험이없는 사용자에게는 더 나을 수 있지만 AsGbm은 숙련 된 사용자에게는 더 나을 수 있지만 일부 팀 (여러 릴리스 를 유지하려는 사람)에게는 적합하지 않습니다. 예를 들어 지점). 내가 말했듯이 AsGbm의 문제점은 지나치게 복잡하게 보일 수 있다는 것입니다. gitgitgit
Mark Booth

너의 의도를 알 겠어. 나를 위해 AsGbm으로 시작했습니다 (또는 오히려 내 요구에 맞게 조정). git을 svn과 다르게 사용할 수있는 방법을
알았으므로 완벽했습니다.


0

통합 서버에 하나의 마스터 저장소가 있어야하며 각 개발자는이를 복제해야합니다. 그런 다음 당기고 밀어 넣으십시오. 별도의 지점에서 새로운 큰 기능을 개발하십시오. 로켓 과학은 없습니다. 라이브 서버에서-마스터 저장소도 복제해야합니다. 그리고 "라이브"와 같은 브랜치를 갖는 것이 좋습니다.


2
자식 아카이브는 라이브 서버에서 직접 편집 물건을 원하는 당신이 실제로하지 않는 것을 전제로 라이브 서버에 배포하기위한 또 다른 방법입니다
JK.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.