2011-09-30 3 views
1

우리는 현재 SVN을 사용하고 있지만 rebase에 크게 의존하는 새로운 워크 플로우를 지원하기 위해 Git으로 이동하는 것을 고려하고 있습니다.지사 Rebase 또는 지형지 물에 대한 SVN Reintegrate?

각 개별 기능이 별도의 지점에서 개발 된 다음 출시 준비가되면 trunk/master로 병합되는 개발 워크 플로를 고려하고 있습니다. 분기는 trunk/master로 다시 병합 된 후에 항상 삭제됩니다.

하나의 제안은 git rebase를 사용하여 master에서의 변경 사항으로 기능 브랜치를 최신 상태로 유지하므로 (브랜치에서 정확히 출시 될지 테스트 할 수 있도록) 브랜치 -> 마스터에서 병합을 단순화합니다.

우리가 고려하고있는 대안은 svn merge를 사용하여 트렁크의 변경 사항으로 기능 지사를 최신 상태로 유지 한 다음 svn merge --reintegrate를 사용하여 지사로 트렁크로 다시 병합합니다.

이러한 방법 각각의 차이점과 잠재적 인 함정은 무엇입니까? 그리고 우리 워크 플로우에 더 적합한가?

+0

git 및 svn을 사용하고 있습니까? 그렇다면 어떻게 둘 다 사용합니까? – brycemcd

+0

우리는 현재 svn을 사용하고 있지만,이 워크 플로우에 대한 git으로 이동하는 것이 더 이치에 맞는지를 결정합니다 (편집 된 질문) – Travis

답변

1

이것은 매우 간단한 git 워크 플로입니다. 여러 개발자가 설명한 방법 중 하나 또는 둘 모두를 사용합니다.

개인적으로 나는 scott Chacon's strategy의 팬이며 정말 유용하다고 생각합니다.

master 분기를 선형 이력으로 유지하기 위해 리베이스 할 수는 있지만 정상적으로 수행되지만 git에서 막 시작하는 일부 주요 루프를 던질 가능성이 약간 있습니다. Rebasing은 역사를 바꾸고 조심하지 않으면 문제를 일으킬 수 있습니다.

git-merge (당신이 언급 한 svn-merge --reintegrate가 아니라)는 단지 시작하면 git에서 좀 더 간단합니다. 힘내 합병 전략은 정말 잘 생각하고 자동으로 당신을 곤경에서 벗어나게 해줍니다.

feature branch를 개발하고 master로 병합하는 경우, git merge --no-ff feature을 실행하는 동안 master에서 병합 커밋을 만들기 만하면됩니다.

git로 시작한 것처럼 병합 워크 플로를 사용하고 싶습니다. IMHO, 당신이 svn 배경에서 오는 경우 더 직관적입니다.

관련 문제