문제

방금 GIT를 사용하여 유지 관리 된 프로젝트를 물려 받았습니다. 어느 시점에서 코드는 3 개의 개별 시스템에 배포되었으며 각 시스템은 자체 분산 GIT repository를 유지했습니다.

3 개의 3 개의 시스템 각각은 원래 기본 시스템을 3 가지 방향으로 확장했습니다. 3 개의 시스템 중 어느 것도 서로 동기화되지 않았습니다. 일부 변경 사항은 마스터 브랜치에 있고 다른 변경 사항은 새로운 지점에 있습니다.

내가 할 수 있도록 3 가지 다른 소스를 하나로 모을 수 있습니까?

  1. 함께 일할 공통 기반을 찾으십시오.
  2. 3 가지 시스템 모두에 적용 해야하는 버그 수정 사항이 어떤 변경 사항을 찾으십시오. 그리고
  3. 하나의 공통 분기 만 있도록 3 개의 시스템을 제정신으로 유지하고 3 가지 다른 시스템에 필요한 사용자 정의를 분리합니까?
도움이 되었습니까?

해결책

나는 아마도 모든 저장소를 중앙 저장소에서 분리로 밀어 넣는 것으로 시작할 것입니다.이 저장소에서 분기 사이에 재건, 병합 등을 쉽게 병합 할 수 있습니다.

다음과 같은 좋은 시각화 도구 git-age, gitnub, Gitx, 킬킬 웃음 불가사의가 작동 할 수 있지만 분기점을 찾을 수 없다면 과제는 아마도 지루할 것입니다. 사용할 수있는 모든 지점에 유사한 패치가 적용되는 경우 (대화식) 레바 제 동일한 순서로 커밋을 재정렬합니다. 그런 다음 지점을 '지핑'시작하고 지점을 마스터에 넣음으로써 분기점을 위로 움직일 수 있습니다. Rebase를 사용하여 커밋하는 방법에 대한 좋은 설명을 찾을 수 있습니다. 여기.

당신이 취해야 할 조치는 howto index. 좋은 컨닝 지 손이 닿는 것이 항상 좋습니다. 또한 Eric Sinks Post에 대한 후속 조치가 의심됩니다. "DVC 및 DAGS, 1 부"유용한 것을 포함 할 것입니다 (그렇지는 않았지만 흥미로운 읽기였습니다).

추가로 좋은 링크는 다음과 같습니다. git 마법, git 준비 그리고 Sourcemage git 가이드

모든 저장소에 각 패치의 목적을 알려주는 좋은 커밋 메시지가 있었기를 바랍니다. 그 또는 코드 검토입니다 :)

사용자 정의를 유지하는 방법은 다음과 같은 운이 좋았습니다.

우리는 일반 코드에서 사용자 정의 된 코드를 분리 (또는 별도로 유지)하여 시작했습니다. 그런 다음 두 가지 접근 방식을 시도했습니다. 두 가지 모두 잘 작동했습니다.

  1. 모든 배포는 사용자 정의가 유지되는 자체 리포지토리를 받았습니다.
  2. 모든 배포는 '사용자 정의'리포지토리에 자체 지점을 얻었습니다.

첫 번째 배치 후 두 번째는 사실이라는 사실을 알게 된 사실이라는 사실을 알았습니다. 우리는 미래의 사용자 정의/절단 포인트를 예견하여 사용자 정의 리포지토리 (현재 사용중인 접근법) 및 기본/코어에서 중복을 줄이기 위해 시간을 보냈습니다. 레포.

그리고 네, 우리는 핵심/사용자 정의 분할 슬립을 알 때마다 무자비하게 리팩터를 리팩터링하려고합니다. :)

다른 팁

확인. 큰 슬로그를 마친 후, 나는 그것을했다. 다른 사람에게는 비슷한 작업을 시작하는 사람에게는 다음이 많이 포함됩니다.

git rebase

명령과 물건이 망가 졌을 때 :

git reflog

그 뒤에

git reset --hard HEAD@{ref}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top