이는 업스트림 리포지토리의 관리자가 첫 번째 풀 요청을 새 커밋으로 스쿼시하고 "unsquashed 브랜치"에서 개발을 계속했기 때문입니다. 저장소 기록을 열고 (예 : gitk 사용) 계속 읽으십시오.
초기 상황은 다음과 같습니다.
* 970f363 (your repo) Add spec for #smart_listing <-- last commit in your first pull request
* 098fcfe Add specs for #smart_listing_create
(more of your commits)
* 721817f Ignore some files
* 89e24b6 (upstream repo) Add missing update_list event <-- tip of origin/master back then
* a084fb9 Fix handling unlimited per page
(...)
ljachymczyk는 업스트림 저장소에 추가하기 전에 모든 커밋을 하나의 새 커밋으로 스쿼시했습니다.
* 61cad2d (upstream repo) Feature spec <-- your work squashed into single commit
| * 970f363 (your repo) Add spec for #smart_listing <-- last commit in your first pull request
| * 098fcfe Add specs for #smart_listing_create
| (...)
| * 721817f Ignore some files
|/
* 89e24b6 Add missing update_list event
* a084fb9 Fix handling unlimited per page
(...)
이제 Git은 단일 새 커밋 ( 61cad2d
)과 전체 브랜치 ( 721817f..970f363
) 사이의 연결을 보지 못한다는 것을 이해해야합니다 . 단일 커밋이 이전 20 개 이상의 커밋과 동일한 변경 사항을 도입하더라도 Git의 경우 이는 관련없는 변경 사항입니다. (그리고 좋은 이유가 있습니다.)
그런 다음 리포지토리에서 계속 작업하여 이전 브랜치에 새 커밋을 추가했습니다.
* 61cad2d (upstream repo) Feature spec
| * 0b14747 (your repo) Refactor #smart_listing_create <-- your new stuff
| * e49c522 Use the controller name by default
| * a1c1a92 Remove the spec directory in dummy app
| * 4128104 Remove gems from Gemfile and add it in gemspec
| * 970f363 Add spec for #smart_listing <-- your old stuff
| * 098fcfe Add specs for #smart_listing_create
| (...)
| * 721817f Ignore some files
|/
* 89e24b6 Add missing update_list event
* a084fb9 Fix handling unlimited per page
(...)
보시다시피 이러한 모든 오래된 커밋은 여전히 업스트림 리포지토리에 존재하지 않습니다 . 이것이 풀 리퀘스트에 나타나는 이유입니다. 병합이나 "정상"리베이스는 변경되지 않습니다.
새 커밋은 61cad2d
이전 브랜치가 아니라 (스쿼시 커밋) 위에 생성되어야합니다 . 따라서 이제 이식해야합니다. 단일 스쿼시 커밋 (61cad2d)이 이전 브랜치와 정확히 동일하다고 가정하면 쉽습니다 (즉, git diff 970f363 61cad2d
변경 사항이 표시되지 않음). 이 경우 간단히
git branch newstuff 0b14747
git rebase --onto 61cad2d 970f363 newstuff
newstuff
스쿼시 된 커밋을 기반으로 4 개의 새 커밋 이있는 분기를 가져와야합니다.
경우에 유의 970f363
과 61cad2d
동일하지, 당신이 병합 충돌을 해결 할 수 있습니다. 이것은 게시 된 커밋을 리베이스하고 스쿼시하는 것이 어떻게 문제를 일으키는 지 보여줍니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다