Git提交后,发现log写错了或者写的不合适,如何修改呢? 如果修改最后一次提交的log,则直接使用以下命令: ``` git commit --amend ``` 如果需要修改的提交在中间位置,则需要按以下步骤执行: # 首先查log 找到需要修改log的提一个版本的commit id,例如: ``` commit a26745f1922247edfa6916735dc6c020e2ef9bb2 (HEAD -> branch2, origin/branch2) Author: yz Date: Thu Jul 22 10:15:07 2018 +0000 [bug] update 3. commit da9ddfe082e2dde7b40e9b2e01f197a3c0e07a31 Author: fairyfar Date: Thu Jul 22 09:00:46 2018 +0000 [bug] update X. commit c938816c8535d4c51d4e6a1a59507101a079e5b0 (origin/branch1, branch1) Author: fairyfar Date: Thu Jul 22 08:01:40 2018 +0000 [bug] update 1. ``` 假设,我们需要修改 “[bug] update X.” 这次提交的log(commit id为da9ddfe082e2dde7b40e9b2e01f197a3c0e07a31),它被夹在”[bug] update 1“和”[bug] update 3“之间。 “[bug] update X.”的前一次提交commit id为c938816c8535d4c51d4e6a1a59507101a079e5b0,这是需要找的id。 # 然后rebase ``` git rebase -i c938816c8535d4c51d4e6a1a59507101a079e5b0 ``` 在弹出的vim中编辑: ``` edit da9ddfe082 [bug] update X. pick a26745f192 [bug] update 3. # Rebase c938816c85..a26745f192 onto c938816c85 (2 commands) # # Commands: # p, pick = use commit # r, reword = use commit, but edit the commit message # e, edit = use commit, but stop for amending …… ``` # 最后修改 将da9ddfe082的command修改为edit,然后”wq“保存退出。之后会收到以下操作提示: ``` Stopped at da9ddfe082... [bug] update X. You can amend the commit now, with git commit --amend Once you are satisfied with your changes, run git rebase --continue ``` 意思是,接下来,以此执行”git commit --amend “和”git rebase --continue“,来完成对da9ddfe082的修改。 当然,以上操作,修改的是本地分支,如果需要修改远程分支,需要使用git push或者git push -f(请谨慎使用)命令。