[英]How do I git rebase the first commit?
我使用git init
創建了一個新的 repo,然后進行了三個提交。 現在我想 rebase 回去修改我的第一次提交,但是如果我做git rebase -i HEAD~3
它會抱怨! 如果我用HEAD~2
嘗試同樣的方法,那么它有點工作,但只讓我重新排列最后兩個提交。
我如何引用“在有任何提交之前提交”或返回並插入一個空提交?
最簡單的方法,使用足夠新的 git(這已經很長時間了,所以你應該擁有這個):
git rebase -i --root
另一種簡單的方法,正如twalberg 在評論中指出的那樣,是使用git checkout --orphan
設置以進行新的根提交,您可以在其上復制舊提交。 (無論如何,這就是rebase -i --root
最終在內部執行的操作。)
如果您想對已經在提交中的文件進行更改、編輯作者/消息等, torek 的回答很好。但是如果您想拆分提交或類似的東西,那么您很可能會遇到麻煩,因為您無法從初始提交中執行git reset HEAD~
。
為了使這成為可能,您可以像這樣插入一個空的初始提交:
git checkout --orphan empty-initial-commit
git commit --allow-empty -m 'Empty initial commit'
git checkout <branch>
git rebase empty-initial-commit
git branch -d empty-initial-commit
然后你可以做git rebase -i
,編輯提交(第一個非空提交),然后像往常一樣做git reset HEAD~
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.