2011-03-22 4 views
2

내가 가지고있는 다음과 같은 문제가 ...자식 제거는 병합에서 커밋

내가 좋아, 내가 원격 지사를 가져 ... 다음, 내 로컬로 원격 지점을 병합의 repo에 변경을 추진하려고했다

 
commit: A1 
merge: M1 
    merge remote branch "remote/branch"

commit: A2 commit: A3 commit: A4

그리고 내가 원하는 : 나는 자식 로그를 실행할 때하는 세 개의 커밋을했지만, 그 중 하나가 완료되지 않습니다, 그래서이 REPO 이러한 커밋 중 하나 밀어 싶지 않아 ... 그것은 나에게 이것을 보여줍니다 커밋 A2를 제거하십시오 ... 어떻게해야합니까? 내가 검색 한 어떤 사람들은 자식 REBASE 또는 자식 재설정을 사용 말합니다,하지만 난 하나가 그냥 경우에 ... 사용해야하는 확실하지 않다, 나는 도움이 변경

에게

감사를 밀어하지 않았다

당신이 (즉, A2 아직 중 하나를 밀어되지 않은 의미) 병합이 아직 커밋 밀어하지 않은 경우
+0

커밋 A2만을 제거 하시겠습니까? 잠깐, 커밋을 제거하고 싶습니까? –

+0

안녕하세요 마틴, 그냥 커밋을 제거하고 싶습니다 A2 – markos

답변

10

당신은 대화 형으로 리베이스 수 :

git rebase -i HEAD~3 

지금 병합 라인을 커밋 삭제합니다. 그런 다음 커밋 순서를 변경하여 A2가 최신 커밋이되도록하십시오. 즉 완료 지점이되면 :

git branch incompleteFeature 

그런 다음 커밋 이전에 마스터를 재설정 :

git reset --hard HEAD^ 

가 이제 제대로 동기화 할 수 있습니다 및 병합하기로 결정 때까지 불완전한 기능은 자신의 지점에 앉아 것 나중에 준비가 끝났습니다.

희망 하시겠습니까?

+0

대단히 감사합니다! – markos