2016-09-06 3 views
2

지난 2 회의 커밋을 git로 스쿼시하려고합니다.GIT - 커밋을 스쿼시 할 수 없음 : 치명적 : 단일 리비전이 필요함

commit a350cf6071db1bcaa2a37710a61508565a34d917 
Author: tibbus 
Date: Tue Sep 6 11:49:19 2016 +0200 

    commit message #3 

commit 8c0384b995831e5a62b423721434005788b2eb63 
Author: tibbus 
Date: Tue Sep 6 11:49:01 2016 +0200 

    commit message #2 

commit 6eab9df2df71196d62dab3c6caed9cd0ac6aeee5 
Author: tibbus 
Date: Tue Sep 6 11:48:41 2016 +0200 

    commit message #1 
... 
more commits from develop... 

그래서 내가 커밋 하나 하나에 # 2, # 3 커밋 스쿼시 커밋 할 : 나는라는 또 다른 지점에서 지점을 만든이 예에서 개발하고 내가 3 새로운 커밋을 가지고, 이것은 자식 로그입니다 나는 시도 :

git rebase -i HEAD˜2 

나는이 오류 얻을 : 내가 할 경우

fatal: Needed a single revision 
invalid upstream HEAD˜2 

을 :

git rebase -i develop 

잘 작동하지만 3 가지 커밋을 모두 스쿼시하고 싶지는 않습니다. 최신 2 가지만 원합니다. 커밋 수가 충분하지 않을 때이 오류가 표시되지만 분명히 ¯_) _/¯

+0

"''git log --oneline --graph --decorate'"의 출력을 게시 하시겠습니까? – Leon

+0

안녕하세요, @Leon, 당신의 관심에 감사드립니다. 더 쉽게 읽을 수 있도록 jsfiddle에 명령 로그를 저장했습니다. https://jsfiddle.net/083kvr6b/2/ – tibbus

답변

1

잘못된 기호 ~을 사용하고 있습니다. ~는 ASCII 형식이 아닌 문자 인 the small tilde입니다. 단, tilde ASCII 기호가 필요합니다. 어떤 위치에서 복사 했습니까? 키보드의 ~ 삽입 ˜?

복사 & 내 대답에서 명령을 붙여 그것은 아무 문제없이 작동합니다 :

git rebase -i HEAD~2 
1

가 확인 귀하의 tilda (~). 다른 ASCII로 보입니다. 그러므로 git 커맨드 라인은 개정판을 요구하고 있습니다.