2013-01-07 2 views
1

필자는 새로운 기능을 병합하고자하는 메인 라인 저장소를 보유하고 있습니다. 이 기능은이 레포의 사본으로 개발되었습니다. 이 repo가 ​​생성 된 방식은 git init을 수행하고 거기에 모든 복사본을 삭제하는 것입니다 (예 : mainline의 기록이 없습니다. 첫 번째 커밋은 모든 것을 똑바로 복사하는 것입니다). 나는 지사 Repo를 새로운 지사로 가져올 수 있다는 것을 알고 있지만 ... 나는 단지 변화가있는 파일에 대해 both added 충돌을 얻는 것처럼 보입니다. 또한, 내 기록이 주요 저장소에서 기능 저장소에서 가져온 것인지 확실하지 않습니다. 그것은 단지 하나의 큰 커밋으로 보여 질 것입니까? 저의 이전 실수에도 불구하고 이것을 더 좋은 방법으로 할 수있는 방법이 있습니까?Git에서 비슷하지만 트래킹되지 않은 리포지토리를 병합 할 수 있습니까?

답변

1

"신기능"레포 작업을 시작한 이후 "메인 라인"레포에서 커밋 한 것처럼 들립니다. 이 경우, 현재 커밋이 아닌 새로운 repo을 시작한 커밋에서 메인 라인 저장소 에 지점을 만들어야합니다.

---o---o---o mainline 
    \ 
    o---o---o new features 

뭔가

cd mainline 
git checkout -b new-features <origin commit for new features> 
git remote add new-features ../new-features 

당신이 원하는대로 git rebase/git merge/git cherry-pick 수가 있어야에서

있다. 앞으로 나아가, 당신이 한 일을하지 마십시오. "분기"를 원하면 git branch을 사용하십시오.

+0

간헐적 인 커밋을 참조하는 메인 라인 저장소에 새 분기를 생성하십시오. 그것은 저속한 가지가 어디에서 만들어 졌는지를 저지른다. (메인 라인 레포는 새로운 분기를 가지며, 이는 간헐적 인 커밋을 가리킨다.) 그런 다음 새 기능이 포함 된 세 번째 분기를 만들고 간헐적 인 주류 분기에 다시 리베이스 한 다음 마지막으로 분기 된 분기를 다시 메인 라인에 병합 하시겠습니까? 아휴! 이걸 위해 레드 불이 필요해! – Zombies

관련 문제