2012-10-16 3 views
1

MapBox-ios-sdk 프로젝트를 복제했습니다. 나는 기여하기에 적절하지 않은 코드에 몇 가지 추악한 해킹 변경을 가했다. 그러나 MapBox-ios-sdk가 최근에 변경되었습니다. 내 해킹을 유지하면서 최신 변경 사항을 프로젝트에 병합하려면 Git을 사용하여 가장 좋은 방법은 무엇입니까? 처음 복제했을 때 분기해야합니까? 아니면 단지 master 브랜치에서 수정하고 ghit을 공식 소스에서 풀고 충돌을 해결해야하며 앞으로의 SDK 버전에서도이를 유지해야할까요?Git으로 원격 변경 사항을 통합하면서 오픈 소스 프로젝트 수정하기

답변

1

귀하의 해킹이 귀하의 로컬 master 지점에 맡겨 졌다고 가정합니다. (커밋 하나 이상있는 경우 myhack^을 조정) 이것은 당신의 하나 당신에게 myhack 분기를 줄 것이다하는 것은 그것을 커밋

git branch -m master myhack 
git branch myhack^ master 

과 일치하는 master 지점 : 당신은 뭔가를 수행하여 지점으로 이동할 수 있습니다 프로젝트의 원본 마스터

이 시점에서 새로운 코드를 로컬 master 분기로 충돌없이 가져올 수 있습니다. 그런 다음 myhack 분기로 전환하고 새 마스터를 병합합니다.

git checkout myhack 
git merge master 
+0

내 로컬 마스터 분기를 커밋하지 않았습니다. 코드를 수정 한 것뿐입니다. "^"문자는 무엇입니까? 그리고 두 개 이상의 커밋이있을 경우 "myhack ^"을 조정하는 것이 의미하는 바가 확실하지 않습니다. – huggie

+0

아직 커밋을하지 않았다면, 훨씬 쉽습니다.'git checkout - b myhack'으로 변경 한 후 새로운 "myhack"브랜치에 변경 사항을 적용한 다음 "이 시점에서 ..."에서 시작하는 지침을 따르십시오. –

+1

다른 질문에 관해서는, 당신이 망할 놈에게 아주 새로운 것을 보았습니다. myhack ^은 "myhack"이전에 커밋 *을 의미한다. 만약 하나 이상의 커밋을했다면, 이전 커밋을 기술하기위한 다른 표기법이있다. 친절한 Git 문서를 참조하라. –

0

브랜치가 처음이 아니기 때문에 가장 좋은 방법은 다음과 같습니다. master 브랜치에서 수정하고 공식 소스에서 끌어 와서 충돌을 해결하십시오.