git 修改已经提交的 commit
作者:互联网
对于已经 git commit,但还未 git push 到远程仓库的提交信息进行修改。主要分为如下两类
一、 对于刚刚提交的信息进行修改,此时修改的commit为最后一次提交的内容:
可修改提交的message 和 author,如修改下图所提交的信息和作者
# 1. 只修改提交的 message,如将已提交的message修改为 "B01"
git commit --amend --message="B01"
# 2. 只修改提交的 author 信息,如将author设置为 "Jeff <Jeff@163.com>" ,之后会进入到 vim编辑message页面
git commit --amend --author="Jeff <Jeff@163.com>"
# 3. 一条命令行来同时修改已提交的author 和 message
git commit --amend --author="Jeffxu <Jeffxu@163.com>" --amend --message="A02"
二、修改历史多次提交的 commit 信息
可以使用 git rebase -i
命令来对多次提交的历史 commit 内容进行修改。
如修改下图中 "A02"~"A05" 这四次commit的信息。
git rebase -i
将以Vim编辑器来显示所有已经 commit ,但还未 push 到远程仓库中的内容,如下图中"pick ...." 所对应的四条
- 将需要修改的那条 commit 所对应的 "pick" 修改为 "edit",保存并退出Vim编辑器,修改后如下图所示:
- 执行
git commit --amend --author="<author info>"
或git commit --amend --message="<edit message>"
来修改对应的author 或者 message。与最上面修改最后一次commit方式类似。
# 1. 只是修改author信息,随后会进入到编辑message的页面,如不需要修改message,可直接退出vim编辑器
git commit --amend --author="<author info>"
# 2. 只是修改message信息
git commit --amend --message="<edit message>"
# 3. 同时修改message 和author
git commit --amend --message="<edit message>" --author="<author info>"
- 修改好对应的内容后,执行
git rebase --continue
来完成该笔 commit 的修改,同时会自动进入到下一笔 commit的编辑位置,如下图显示当前修改的是第几笔的commit 内容
- 继续执行类似于步骤3,4的
git commit --amend
和git rebase --continue
指令来修改对应的内容,直到所有的 commit全部修改完成。 - 可以执行 skip 跳过当前的commit修改, abort 放弃所有的修改,包含之前的修改
# 1. 跳过对当前的这笔 commit 进行修改
git rebase --skip
# 2. 放弃对所有 commit的修改,之前已完成修改的内容也全部会被丢弃
git rebase --abort
【参考资料】
标签:git,author,--,修改,提交,commit,message 来源: https://www.cnblogs.com/Jeffxu/p/16697325.html