문제
내가 알고있는 많은 질문에 그렇지만,그 수 없는 것이 답을 찾아 내가 찾는다.
나는 그 병합된 작업점으로 내 마스터,나는 준비를 밀어 내는 변경하여 원격입니다.그러나,그들은 그들로 표시되는 두 개의 커밋:
commit 878c07412aab6a6b06b7fc8dd84c2418cc4f31d8
Merge: 9ffa590 c9f5552
Author: ***
Date: Mon May 21 16:02:36 2012 +0100
Merge branch 'modelUpdate4'
Conflicts:
***.xcodeproj/project.pbxproj
commit c9f5552862872673317701c3dffd7fb6b6daa02c
Author: ***
Date: Mon May 21 15:03:21 2012 +0100
Modified model according to requests. Repopulated seeded database.
이것은 출력의 git 로그와 두 개의 커밋하고 싶로 스쿼시를 하나입니다.그러나 나는 하:
git rebase -i HEAD~2
그것이 실제로 표시 4 전력(고 밀어)가한다.나 오해하는 방법을 내가 가지는 합병 후?는 경우도 진행하고 있습니다.리베이-나이가 표시됩니다 첫 번째 commit 에 git 로그 목록이다.
감사합니다!
해결책
때문에 당신이 말한 네 커밋이었던 이미 밀어,나는 당신의 그래프(git log --oneline --decorate --graph
)은 다음과 같은,당신은 분기 commits 사 master
고 modelUpdate4
이미 밀리 원격 저장소:
* (master, modelUpdate4, HEAD) Merge branch 'modelUpdate4'
| \
| * (origin/modelUpdate4) Modified model according to requests. [HEAD^2]
| |
| * Another commit on modelUpdate4
| |
| * Yet another commit on modelUpdate4!
| |
* | (origin/master) Something that conflics with a commit in modelUpdate4 [HEAD~1]
| /
* Previous commit on master [HEAD~2]
HEAD~2
첫 번째 부모의 첫 번째 부모로,그리고 그 이후의 HEAD
병합의 modelUpdate4
로 master
,그것은 두 개의 커밋을 아래로 master
라인입니다. HEAD^2
가 HEAD's
두 번째 부모로,그래서 commit 하기 전에 HEAD
아 modelUpdate4
라인입니다.(참조: http://paulboxley.com/blog/2011/06/git-caret-and-tilde)
는 경우 HEAD~2
새로운 base,당신은 모든 사 commits HEAD~2
고 master
직선.당신은 또한 처리점에서 충돌 modelUpdate4
commit 가 발생합니다.
* (master, HEAD) Merge branch 'modelUpdate4'
|
* Modified model according to requests. Repopulated seeded database.
|
* Another commit on modelUpdate4
|
* Yet another commit on modelUpdate4!
|
* Something on master that conflics with modelUpdate4
|
* Previous commit on master
는 경우 다른 사람들을 사용하여 원격 가지,또는 당신을 유지하려는 분기 역사는하지 않는,리베이스.그것은 역사를 다시 쓰는 의미에서 원격 저장소는 그냥 두통에 대한 다른 사람.밀어서 병합 commit 고 당신은 황금입니다.
또는,당신은 수 있는 리베이스에 직접 origin/master
. origin/modelUpdate4
끝까지에서 밖으로 git 을 하셨지만,이렇게 작업을 지점 나에 당신을 삭제합니다.