중앙 저장소를 사용하여 GIT의 목적에 반대하고 있습니까?

StackOverflow https://stackoverflow.com/questions/460502

  •  19-08-2019
  •  | 
  •  

문제

당신이 a에 있다면 기업 많은 사람들이 특정 응용 프로그램을 작업하면서 설정하면 분산 버전 제어 공식 중앙 저장소를 갖는 시스템?

때때로 나는 분산 버전 제어 시스템의 개념을 이해하기 위해 고군분투합니다. git 기업 환경에서. 중앙 저장소가 없다면 누가 최신 업데이트 된 버전을 가져 오는 버전을 파악하는 것은 피타가 아니며, 모든 사람이 잡아야 할 X 또는 버그 수정 y 등을 가진 사람 등 등.

그것은 목적을 물리 치고 있습니까? git 비슷한 방식으로 사용합니다 SVN, 모두가 밀고/당기는 중앙 저장소로? 그렇게 할 때마다 나는 모든 것의 요점을 놓치고 있다고 생각합니다.

누군가 나를 깨달을 수 있습니까?

도움이 되었습니까?

해결책

설마. DCV는 중앙 저장소를 포함하지 않고 개발자간에 상호 작용하는 방법에 더 많은 자유를 허용합니다. 공식 저장소는 공식입니다 합의로. Linux는 또한 "공식"커널 릴리스가 생성되는 중앙 저장소를 가지고 있지만 중앙 VC와 같이 중앙, "공식", 저장소 및 클라이언트 저장소 간에는 물리적 차이가 없습니다.

다른 팁

당신은 아마도이 다이어그램의 선을 따라 생각하고있을 것입니다.

alt text

이것은 아마도 CVC에서 나오는 혼돈처럼 보일 것입니다. "우리는 주문이 필요합니다"라고 말하는 것을 들었습니다.

중앙 저장소가 없다면 누가 최신 업데이트 된 버전을 가져 오는 버전을 파악하는 것은 피타가 아니며, 모든 사람이 잡아야 할 X 또는 버그 수정 y 등을 가진 사람 등 등.

예. CVC와 달리 실제로 "최신 버전"은 없습니다. 중앙 위치가 없으면 최신 버전의 Sue, Joe 또는 Eve를 볼 수 있는지 즉시 알 수 없습니다. 중앙 위치는 최신 "안정적인"릴리스가 무엇인지 명확히하는 데 도움이됩니다.

이것과 비슷한 것 :

alt text

또한 조직 내 사람들의 그룹의 송금에 따라 하나 이상의 인식 된 중앙 저장소가있을 수 있다는 점도 주목할 가치가 있습니다.

여러 개발 팀을 관리하는 프로젝트 관리자를 상상해보십시오. 각 팀에는 "중앙"저장소가있을 수 있습니다. 매주 프로젝트 관리자는 각 팀에서 "중앙"리포지토리로 변경하여 합병하여 팀의 "중앙"리포지토리로 다시 밀어 넣을 수 있습니다.

이것은 아마도 좋은 예가 아니다 (나는 여전히이 모든 것을 둘러싼 내 머리를 얻고있다). 그러나 그것은 단지 하나의 프로젝트 관리자 일뿐입니다. 몇 가지 프로젝트/관리자와 QA 팀을 더 던지면 내가 어디에서 왔는지 볼 수 있습니다.

--

분산 소스 제어를 통해 중앙 "공식"저장소는 소스 제어 도구 아키텍처가 아닌 정책에 의해 설정됩니다.

분명히 Git의 목적을 물리 치지 않습니다.

중앙, 공식 저장소가있는 경우에도 GIT 또는 기타 DVC를 사용하는 데 이점이 있습니다. 아직 소스 제어가 분산되어 있습니다. 즉, 저장소 사본을 가져 가서 코드 작업을 수행하며 필요한 경우 몇 분마다 로컬 커밋을 수행 할 수 있습니다. Commits가 빌드를 깨뜨리는 반 마감 코드에 있다고 걱정할 필요는 없습니다. (그리고 매우 빠릅니다.)

그런 다음 모든 작업이 완료되면 균질하고 깨끗한 상태에서 역사를 정리하고 완료된 변경 사항을 중앙 저장소로 밀어 넣을 수 있습니다.

나는 당신이 "개인"커밋과 "공개"푸시라는 아이디어를 분리하는 이점을 과소 평가할 수 있다고 생각하지 않습니다. 그런 작은 세분화로부터 혜택을받을 수있는 유일한 사람이더라도 변경 사항을 추적 할 수 있습니다.

당신이 이것을 확인하면 git의 발표, (슬라이드 475 및 팔로우), 중앙 저장소 모델은 GIT에 의해 완벽하게 지원됩니다.

원하는 사람을 강요 할 수 있습니다 git push 먼저 만들기위한 개발 git fetch + git merge 먼저 밀어 넣습니다.

그것은 GIT의 목적을 전혀 물리 치지 않으며 모든 사람이 서로 '동기화'되도록 보장합니다.

Linus의 "공식"저장소와의 차이 Jespere가 언급했습니다 다른 워크 플로, 즉 "독재자 및 중위"모델로 관리되는 것입니다. 여기서 Write Access (Push)는 Linus에 대해서만 부여되며 누구나 읽기가 부여됩니다.

이제 : "그것이 DVC의 지점을 물리 쳤습니까?"

아니요, 여전히 각 개발자마다 하나의 리포지토리를 배포했으며 자체 내부 팀 워크 플로우에 따라 자체 리포지토리를 가져 오거나 병합 할 수 있습니다.
그러나 중앙 저장소에 기여하고 싶다면 해당 저장소의 최신 기록을 최신 상태로 유지해야합니다.

DVC의 주요 장점 중 하나는 '공식'저장소에서 최신 버전을 얻은 다음 모험을 할 수 있다는 것입니다. 로컬로 변경 사항을 커밋하고 마음대로 롤백 할 수 있습니다. 이것은 또한 Central Repositoy에 액세스하지 않고도 일할 수 있으며 소스 코드 제어의 이점을 유지할 수 있음을 의미합니다.

나는 약간의 훈련으로 모델이 매우 잘 작동한다고 생각합니다. 이 기사 당신이 채택 할 수있는 다양한 모델을 잘 설명합니다

Git과 같은 DVC는 중앙 저장소를 사용하도록 강요하지 않습니다. 물론 하나의 저장소를 "중앙"또는 "공식"또는 그 밖의 것으로 선언 할 수 있으며 회사 맥락에서 중앙 저장소는 최소한 백업 목적으로 개발을 위해서는 의미가 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top