첫 번째 커밋을 어떻게 git rebase합니까?


128

나는 git init새로운 repo를 생성하고 세 개의 커밋을 만들었다. 이제 다시 돌아가서 첫 번째 커밋을 수정하고 싶지만 그렇게 git rebase -i HEAD~3하면 불평합니다! 내가 똑같이 시도하면 HEAD~2약간 작동하지만 마지막 두 커밋 만 다시 정렬 할 수 있습니다.

'커밋이 있기 전에 커밋'을 참조하거나 돌아가서 빈 커밋을 삽입하는 방법은 무엇입니까?


답변:


216

쉬운 방법, 최근의 git (이것은 오랫동안 나왔으므로 이것을 가지고 있어야 함) :

git rebase -i --root

또 다른 쉬운 방법은 twalberg가 주석에서 언급했듯이git checkout --orphan 이전 커밋을 복사 할 수있는 새 루트 커밋을 만드는 데 사용 하는 것입니다. (이것이 rebase -i --root어쨌든 내부적으로하는 일입니다.)


사용 git rebase -i --root나는 오류가 error: cannot 'fixup' without a previous commit두 번째 커밋 스쿼시 할 때하는 것은 (난 그냥 첫 번째 원하는)
mikemaccana

지침 시트에서 정확히 무엇을 편집하고 있습니까? 가장 오래된 커밋 목록이 맨 위에 있고 pick각 커밋에 대한 명령이 있어야합니다. 두 번째 picksquash또는로 변경하고 fixup지침 시트를 작성하고 편집기를 종료하면 Git이 작업을 수행합니다.
torek
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.