[英]Git: How to fix commit during rebase
我遇到了以下問題:
在git rebase期間,一個自動解析的提交有一個錯誤,即由於自動解析,在頭文件中第二次引入了一個函數聲明,並且編譯失敗。
我的問題是:是否有可能回到自動解決的提交,手動解決它,然后繼續使用rebase,假設我仍然在rebase進程中?
您應該首先完成原始rebase,以便與存儲庫處於已知狀態。 然后編輯使用交互式rebase引入錯誤的提交非常容易。 查看要修復的提交的sha1,然后執行
git rebase -i <sha1>^
編輯器將打開,包含從HEAD到您要修復的提交的提交。 從列表中找到提交(它應該是第一個),將“pick”替換為“edit”,保存並退出編輯器。
現在你可以修復bug,然后做
git commit -a --amend
git rebase --continue
而已!
雖然rebase中的rebase不起作用,但可以將git commit --amend
到最后一次提交的修改。
如果問題是由當前正在進行重新設置之前的提交引起的(即最后提交的那個),則可以修改它而不會對rebase進程產生任何副作用。
所以當我遇到這種情況時,我做了以下事情:
取消當前手動修改的重新定位:
$ git reset HEAD <files being rebased>
對我導致問題的最后一次提交進行修復:
$ git add <files with compilation fix>
將編譯修復程序添加到上次提交的修改中:
$ git commit --amend
返回當前手動修改的重新定位:
$ git add <files being rebased>
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.