FAIRYFAR-INTERNAL
 
  FAIRYFAR-INTERNAL  |  SITEMAP  |  ABOUT-ME  |  HOME  
您的足迹: Git修改已经提交的log
Git修改已经提交的log

Git提交后,发现log写错了或者写的不合适,如何修改呢?

如果修改最后一次提交的log,则直接使用以下命令:

git commit --amend

如果需要修改的提交在中间位置,则需要按以下步骤执行:

首先查log

找到需要修改log的提一个版本的commit id,例如:

commit a26745f1922247edfa6916735dc6c020e2ef9bb2 (HEAD -> branch2, origin/branch2)
Author: yz <admin@msn.com>
Date:   Thu Jul 22 10:15:07 2018 +0000

    [bug] update 3.

commit da9ddfe082e2dde7b40e9b2e01f197a3c0e07a31
Author: fairyfar <fairyfar@msn.com>
Date:   Thu Jul 22 09:00:46 2018 +0000

    [bug] update X.

commit c938816c8535d4c51d4e6a1a59507101a079e5b0 (origin/branch1, branch1)
Author: fairyfar <fairyfar@msn.com>
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 <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = 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(请谨慎使用)命令。



打赏作者以资鼓励:
移动端扫码阅读: