2015-01-30 2 views
5

우리 회사에 특정 흐름을 만들고 싶습니다.git에서 원격 저장소에 개인 분기 만들기

  1. 개발자는 로컬 컴퓨터에서 브랜치를 만들고 파일을 커밋합니다.
  2. 기타의 devs dev에 밀어 떨어져 몇 라운드는 자신의 변경 사항을 공개하기로 결정 후이 분기
  3. 에 액세스 할 수있는 원격 REPO이 지점을 밀어 DEV.
  4. 공용 지점으로 그의 개인 지점을 병합하십시오.
  5. 공개 지점을 푸시하십시오.

즉, 공용 저장소에 개인 원격 지점을 구성 할 수 있습니까?

+0

아무도 사용할 수 없으면 왜 밀어 넣어야합니까?! – Biffen

+0

대답이 아니지만, 왜 이것을 원하니? 비밀 유지에 대한 공식 요구 사항이 있습니까? devs가 자신의 작업을 공유하는 것을 두려워하는 것입니까? 일반적으로, 진행중인 서로의 작업을 볼 수있는 것이 도움이됩니다 (서로를 돕고 병이 난 사람을 데리러 오는 등). – sleske

+2

사람들은 실험실 기능을 위해 저장소에 "개인"부분이 필요하기 때문에 코드가 컴파일되지 않지만 어떻게 든 저장해야하기 때문에 PC가 고장날 수 있습니다. 일부 프로젝트에서 이것을 만났습니다. 하지만 그들은 SVN을 사용하고 일상적인 개발을 위해 사적으로 두 개의 "스트림"을 설정하여 준수한 기능을 제공합니다. –

답변

7

내 팀에서 사용되는 흐름은 주요 git 서버의 원본뿐만 아니라 각 팀 구성원에 대한 완전한 별도의 저장소를 갖는 것입니다.

  1. 데브는 로컬 컴퓨터에서 로컬 브랜치를 만들고 dev에 자신의 개인의 repo에 밀어 하루의 끝에서 멀리
  2. 커밋 (또는 때마다 적합) git push jdoe-private my-cool-branch
  3. 데브 그가하는 일에 행복 결정 출판 가능성을 정돈하고 무사를 리베이스 수 있도록 병합
  4. 는 데브 원점 자신의 지점을 밀어 git push origin my-cool-branch

우리를 위해이 설정에 대한 근거는 t이다 o devs가 업스트림 리베이스에서 발생할 수있는 문제를 자유롭게 리베이스 (rebase)하고 회피 할 수있게하며 또한 전체 백업을 가질 수있게합니다. 별도의 저장소는 관습에 따라 사적으로 만 사용되지만 필요할 경우 액세스 제어를 쉽게 추가 할 수 있습니다. 데이터 중복이 많이 발생하지만 Repo가 인 경우가 아니면이 큰 문제 일 수 있습니다.

+0

확인. 그것은 솔루션처럼 보입니다. 데브 그들과 공공 사이에 그냥 병합 개인 원격 repo있다. –

0

내가 아는 일반적인 해결책은 지점 이름에 문자열을 추가하여 "지점 네임 스페이스"에 동의하는 것입니다. 예를 들어, "private /"로 시작하는 가지는 개인적인 실험을위한 것입니다. 그런 다음

  • 개인/JohnDoe에/리팩토링 - taxcalculation
  • 개인/JohnDoe에/newGUILayout
  • /개인 JaneJones/Java8
  • /개인 TKirk/빌드 우주선
처럼 가지를 얻을 것

이것은 지점을 분리하여 유지하고 목적이 무엇인지 명확하게합니다. 그러나 그 방법은 누구나 볼 수 있고 잡아 당길 수 있기 때문에 가지는 여전히 공개됩니다.

사용자를 기반으로 이러한 분기에 대한 액세스를 제한하려면 일종의 분기 기반 액세스 제어가 필요합니다. 코어 git에는 그런 것들이 없지만, 일부 git 호스팅 서버는 이것을 허용합니다 (예 : Atlassian Stash). 나는 이런 종류의 사설 브랜치를 허용하는 서버를 모르고 있지만 어쩌면 그것을 허용하거나 솔루션을 스크립트로 만들 수있다.

그러나 사용자가 요구하는 것은 다소 특이한 점에 유의하십시오. 일반적인 솔루션은 위에서 설명한 것입니다.

+0

gitolite는 일부 사용자에게 푸시 액세스를 일부 분기로 제한한다는 개념을 가지고 있습니다. 중학교 개발자처럼 마스터 브랜치를 추진할 수 없습니다. 하지만 어쨌든 모든 지점은 여전히 ​​읽을 수 있습니다 –

+0

분명히 지사 이름이 사적인 것임을 분명히하는 것으로 충분합니까? 만약 팀원 중 누군가와 같은 사설 지사를 이끌어 내서 안정적으로 일하기를 원한다면 그 문제는 당신의 자식 워크 플로우가 아닌 다른 곳에 있다고 말할 수 있습니다. –

관련 문제