2017-11-29 22 views
0

마스터 브랜치에 커밋 된 두 개의 브랜치와 개발자 그룹과 개발 브랜치에 커밋 된 다른 개발자 그룹을 만들었습니다. 지난 2 개월 동안 두 지점에서 서로 다른 요구 사항을 개발했으며 이제이 두 지점을 병합하려고합니다. 우리는 SVN을 사용하고 있지만 두 가지 분기의 동일한 클래스가 여러 번 변경되고 현재 병합이 매우 복잡하기 때문에 이러한 클래스를 병합하는 것은 쉽지 않습니다. 이 두 가지를 병합하는 가장 쉬운 방법은 무엇입니까? 지회 역사는 우리에게 중요하지 않습니다. git 툴이나 비주얼 툴을 사용할 수도 있습니다.두 분기의 클래스를 비교하는 가장 쉬운 방법

답변

0

합치기 - 합류 내역 과 변경 사항 병합과 혼동하는 것처럼 보입니다. 이 두 시간은 대부분 동시에 수행됩니다. VCS를 사용하여 병합 작업을 수행 할 때 대개 이 정신적으로 구별되지 않습니다.

그러나 사실

, 그들은 별개이고, 당신이 당신의 이점에 이것을 사용할 수 있습니다 :

  1. 이 VCS를 사용하여 정상 병합 작업을 실행합니다.

    충돌이 발생합니다. 불가피하고 괜찮습니다.

  2. 병합의 양쪽 모두를 사용하여 문제가되는 파일의 충돌을 해결하십시오.

    뭔가

  3. svn checkout --theirs ^path/to/that/file.java처럼 클래스 구현의 두 버전을 모두 가지고 으로 합리적인 방법으로 둘을 화해 또 다른 하나를 (코드 현명한) 올.

  4. 구현 파일을 업데이트하십시오. 테스트를 실행하여 이 예상대로 작동하는지 확인하십시오.

  5. 커밋.

0

bitbucket을 사용할 수 있습니다.

Bitbucket은 Gitourious와 비슷합니다. 하나의 브라우저 탭에서 마스터 파일을 열고 두 번째 브라우저 파일에서 지점을 열 수 있습니다.

0

일반적으로 우리 코드가 마스터의 코드와 항상 최신이되도록 변경해야합니다. 귀하의 경우 변경 사항을 수동으로 병합해야합니다.

당신이 increamentally 마스터 위에 지사에서 수행하여 변경 사항을 적용 할 경우

이 당신이 시간 순서대로 커밋을 적용 할 수

git checkout your_branch 
git rebase -i master 

rebase

등을 할 , 당신은 커밋에 의한 커밋 변경을 병합 했으므로 충돌의 수를 줄였습니다.