需求背景
將 A 功能從 branchA 合入到主分支 master 后過了很多個提交后,發(fā)現(xiàn) A 功能某個地方有 bug,那最好的方法就是跳回到寫 A 功能的時候進行修改。
這分為兩個部分:
修改之前某次的 commit 信息
修改之前某次的 commit 內(nèi)容
實現(xiàn)方法
比如我現(xiàn)在的 git log 如下:
4fd65115db FUNCTION Mipi Camera Camera IC: OV13850 Interface: RX1
97a8ad0f7f FUNCTION 移植 8寸 Mipi LCD Driver IC: RM72014
9633cf0919 FUNCTION 移植 8寸 TP Driver IC:GT911
我現(xiàn)在發(fā)現(xiàn)當時移植 TP 的時候有 bug,我需要回到 9633cf0919 對進行 TP 進行移植的時候來修復這個 Bug。
我只需要這樣做:
- 將當前分支無關的工作狀態(tài)進行暫存
git stash - 將 HEAD 移動到需要修改的 commit 上
git rebase 9633cf0919^ --interactive - 找到需要修改的 commit ,將首行的 pick 改成 edit保存退出
- 開始著手解決你的 bug
-
git add將改動文件添加到暫存 -
git commit –amend追加改動到提交 -
git rebase –continue移動 HEAD 回最新的 commit - 恢復之前的工作狀態(tài)
git stash pop
但是,需要注意的是,如果修改了日志,可能其它隊友無法提交手頭上的工作,需要重新下載重新修改,慎用!