簡體   English   中英

Git:如何在rebase期間修復提交

[英]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進程產生任何副作用。

所以當我遇到這種情況時,我做了以下事情:

  1. 取消當前手動修改的重新定位:

     $ git reset HEAD <files being rebased> 
  2. 對我導致問題的最后一次提交進行修復:

     $ git add <files with compilation fix> 
  3. 將編譯修復程序添加到上次提交的修改中:

     $ git commit --amend 
  4. 返回當前手動修改的重新定位:

     $ git add <files being rebased> 

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM