2012-05-29 3 views
1

"DEV"머신에 git 리포지토리가 있습니다. 얼마 전, PROD 시스템에 일부 코드를 복사했습니다. 그 이후로, 내 DEV 시스템에는 많은 커밋이있었습니다. 그러나 내 PROD 시스템에는 커밋 된 적이 없거나 "Brached"한 두 가지 ad-hock 코드 변경 사항이있을 수 있습니다.코드를 Git에 매치하고 분기를 생성하려면 어떻게해야합니까?

질문 : PROD 코드와 가장 가까운 DEV에서 커밋을 어떻게 찾을 수 있습니까?

그런 다음 분기를 만들고 병합합니다. 목적은 모두를 1 개의 분기로 병합하는 것입니다. PROD에는 수정되지 않은 파일이 많기 때문에 더 쉽게 수행 할 수 있습니다. 모든 커밋을 정확하게 일치하는 것으로 검색하십시오.

나는 git-extensions을 사용합니다.

ty.

답변

1

한 옵션은을 사용하여 각 커밋에서 디렉토리 비교 도구를 사용하여 git 작업 디렉토리와 PROD를 비교하는 것입니다. 유지하려는 PROD 이후 작업 디렉토리에 새로운 변경 사항이있는 경우 good으로 표시하십시오. 작업 디렉토리에 이전 버전의 파일이 있고 대신 PROD 버전을 원하면 bad으로 표시하십시오. 결국 PROD가 시작된 곳과 가장 가까운 커밋을 찾아야합니다. 거기에서 분기를 만들고 PROD에서 복사하면 잘 진행됩니다.

0

다른 정보가 없으므로 (PROD 시스템의 설치가 git 저장소 자체가 아니라고 가정하면 상당히 간단합니다), 파일 생성 타임 스탬프와 DEV 저장소의 커밋 기록을 비교할 수 있습니다. 아마도 PROD 시스템의 코드가 좁은 창에 복사되었을 것입니다. 이 복사본을 작성하는 동안 커밋하지 않았을 가능성도 있습니다.

git checkout -B new_branch <hash_of_that_commit> # Checks out 'new_branch' at that commit 

다음은 diff DEV 및 PROD, PROD을 복사하는 중 점진적으로 또는 일괄로 다시 DEV 위에 변경 : 간단하게 다음, 오른쪽 복사 타임 스탬프 전에 같은 것을 커밋 타임 스탬프를 찾을 git log를 사용합니다. 각 증분 또는 일괄 처리와 커밋하십시오.

그 시점에서 가능한 주제 분기가 있습니다. 머지 않아 마스터 브랜치에 병합 또는 리베이스 할 수 있습니다.

관련 문제