2010-03-19 2 views
4

나는 내 버전 컨트롤을 위해 지금 당장 사용 해왔다. 그러나 나는 모든 개발 과정에서 하나의 master 브랜치만을 사용했다. 내 프로젝트가 커짐에 따라, 안정/개발 지점 및 릴리스 태그에 대해 걱정할 때입니다.힘내 : 겉으로보기에는 단순한 분기 질문

나는 힘내 분기에 관한 기사를 많이 읽었지만 어떻게 작동하는지 배후에있는 개념을 파악하지 못하고 내 분기를 올바르게 설정하려고 할 때 좌절감을 느낀다.

내 상황은 다음과 같습니다. 특정 서버에서 웹 사이트를 만드는 데 필요한 일련의 갈퀴 작업 인 프로젝트가 있습니다. 지금은 데비안 기반 시스템을 사용하고 있지만 우분투 기반 시스템으로 전환하려고합니다. 그래서 프로젝트를 포크 (분기)하고 각 서버 배포마다 별도의 분기를 만들고 싶습니다. 각 분기마다 두 브랜치에서 git pull을 실행할 때 쉽게 마스터 브랜치에서 모든 일반 코드 변경 사항을 가져올 수 있습니다. 필자가 읽은 바에 따르면, master 브랜치를 추적함으로써이를 달성 할 수는 있지만, 제대로 작동하지는 못한다.

이 외에도 다른 프로젝트의 버전을 지정하여 출시 할 수 있어야하지만이 작업을 수행하는 표준 방법에 대해 알지 못합니다. 예전 회사에서 TFS (나는 싫어 했었습니다)를 사용했고 아주 간단했습니다 : 우리는 마스터로부터 브랜치를 만들고 그것을 "Version 2"라고 부릅니다. 그런 다음 버전 2가 안정적인지 확인하고 버그를 수정 한 다음 버전 2의 변경 사항을 마스터 분기로 다시 병합합니다. 이것을 달성하는 방법은 괴롭 히고, 그렇다면 정확하게 그것에 대해 어떻게해야합니까? 그래서

는 마무리하기 위해, 나는 다음과 같은 두 개의 분리 된 (하지만 매우 관련) 질문 부탁 해요 : 내가 (GitHub의에) 원격 브랜치를 만들려면 어떻게해야합니까

  1. 자동으로 마스터에서 변경 사항을 추적 있도록 새 분기에서 git pull을 실행하고 모든 마스터 변경 사항을 가져올 수 있습니다. 및
  2. 내 프로젝트의 버전을 관리하는 가장 좋은 방법은 무엇이며 몇 가지 예제 명령을 제공 할 수 있습니까?

대단히 감사드립니다. 명확한 설명이 필요하면 알려주세요.

+0

'데비안 기반 시스템'에서 '우분투 기반 시스템'으로 바꾸는 것은 이상한 말입니다. 우분투는 데비안 기반 시스템입니다. –

+0

@William Pursell - 그렇습니다. 그렇기 때문에 그다지 큰 문제는 없었습니다. 그러나 약간의 차이점이 있었으며 우리는 생산과 개발을 위해 두 시스템을 사용할 것입니다. 별도의 분기 (기본적으로 구성 파일 변경 내용을 추적)를 만들어야합니다. –

답변

3

정확하게 이해하면 추적 기능을 제대로 사용하지 않는 것 같습니다. 추적은 예를 들어 로컬 브랜치와 해당 브랜치의 원격 복사본 간의 차이를 추적하는 데 사용됩니다. "버전 2"지점은 마스터를 추적해서는 안됩니다. 로컬 마스터는 원본/마스터 (원격 저장소)를 추적해야합니다.

트래킹 대신 (나는 올바르게 이해하고있는 경우) 리베이스를 사용해야합니다. 마스터는 당신이 당신의 버전이 지점에서 원하는 새로운 패치가있는 경우, 당신은 (당신이 버전 2 분기에 현재있어 가정)을 수행합니다

자식 마스터에게

을 리베이스 당신을 위해 어떤 갈등이없는 희망 결의. Rebasing은 또 다른 웜 깡통이 될 수 있지만 실제로 나쁘지 않습니다. 나는 단지 직장에서 6 개월 쯤에 자식을 사용하고 있었고 초기 고비 후에는 부드러운 항해를 해왔다.