문제가 있습니다. 지점이 master
과 feature
이었습니다. 1 백 년 전 master
과 feature
은 공통 조상을 가졌지 만, 그 이후로 100500 커밋이 통과되었습니다. master
및 feature
브랜치가 이제 매우 다양합니다. 승인. 나는 하루 종일 보냈고 마침내이 % # $ % # 병합을 완료했습니다. 하지만 ... 하루가 끝날 무렵이 결과를 보관소로 보내고 팀원이 'master'지점에서 약 5 개의 새로운 커밋을 작성했다는 사실을 알게되었습니다. $ # % # $ 우리에게 중요합니다 해야 할 일 rebase 앞으로 내 병합을 빨리 감기하려면이 커밋을 수행하십시오. 따라서이 5 가지 커밋을 내 병합 결과에 통합해야합니다. 이미 E
내 로컬 repo에서 master
을 feature
에 병합 한 결과로 커밋 (구성표를보세요)했습니다. 나는 C1 때문에 서버에 그것을 밀어 넣을 수 없다 ... C5 - 리모컨에 새로운 커밋이 feature
에있다. 내가 리모컨에서 새로운 것을 만들었을 때 나는 이미 표준 변경을했는데, 하나의 브랜치의 히스토리를 유지하려면 git pull --rebase
을 수행한다. 나는 git pull --rebase
을 돌 렸으며 실제로 모두 다시 합치려면 git에서 제안을 얻었다. C1에서 손대지 않은 파일에도 많은 충돌이 있습니다 ... C5가 커밋합니다. 내가 뭘 잘못하고있어? 도와주세요. 내가 두 번째 계획에 익사 한 결과를 얻는 방법? 내가 미쳤 니? 전혀 할 수 있습니까?병합 - 커밋 빨리 감기 필요에 의해 복잡한 두 개의 서로 다른 분기를 병합 수행
Now:
o--A--o-----...100500 commits....[master]....--o-----------B
\ \
o---...100500 commits....[feature - local repo]...C--E(local repo - epic merge result)
|
o---...100500 commits....[feature - remote repo]..C--C1--C2--C3--C4--C5(remote repo, feature branch - additional 5 commits)
Need to fast-forward E ahead C1, C2,... C5, that were added on remote when I was busy with merge:
o--A--o-----...100500 commits....[master]....--o-----------------------B
\ \
o---...100500 commits....[feature]...--o--C--C1--C2--C3--C4--C5--E(epic merge result)
업데이트
내가 git pull --rebase
내가 그 자식은 C1의 상단에 넣어하려고 나타났습니다 (feature
분기에 체류)하고있어, ..., C5는 첫 번째 (feature
지점의 원격에 커밋) , 그 다음에 두 번째, 그리고 master
브랜치의 다른 100500 커밋. 그것은 내가 원하는 것이 아닙니다. 난 단지 E
C1 꼭대기에 커밋이 필요합니다 .. C5,하지만 모두 master
지점의 커밋. 이 동작을 보면 에서 git rebase --continue
사이에 충돌이 발생하여 git mergetool
사이클이 발생합니다.
미안하지만 바보입니다. 자세한 내용을 설명해주세요. "병합을 사용하여 내역을 확인하고 그 위에 5 개의 새로운 커밋을 리베이스하십시오"는 의미입니다. 내가 중단 한 리베이스 중에 병합을 처리한다는 의미입니까? (지옥입니다!) – Dao
@Dao : 현재 기록을 보면 마스터가 있고 로컬 기능이 병합되어 있습니다.당신은 그 위에 원격 기능을 리베이스하려고합니다. 가장 간단한 방법은 실제로 모든 5 가지 커밋 중에서 체리 선택 일 수 있습니다 ('git cherry-pick ..remote/feature'). –
@Dao : 로컬 지사 지점을 체크 아웃하고 리모컨과 일치하도록 업데이트 한 다음'git rebase master' 만 할 수 있습니다. –