其他分享
首页 > 其他分享> > git 修改已经提交的 commit

git 修改已经提交的 commit

作者:互联网

对于已经 git commit,但还未 git push 到远程仓库的提交信息进行修改。主要分为如下两类

一、 对于刚刚提交的信息进行修改,此时修改的commit为最后一次提交的内容:

可修改提交的messageauthor,如修改下图所提交的信息和作者

# 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的信息。

  1. git rebase -i 将以Vim编辑器来显示所有已经 commit ,但还未 push 到远程仓库中的内容,如下图中"pick ...." 所对应的四条
  2. 将需要修改的那条 commit 所对应的 "pick" 修改为 "edit",保存并退出Vim编辑器,修改后如下图所示:
  3. 执行 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>"
  1. 修改好对应的内容后,执行 git rebase --continue 来完成该笔 commit 的修改,同时会自动进入到下一笔 commit的编辑位置,如下图显示当前修改的是第几笔的commit 内容
  2. 继续执行类似于步骤3,4的 git commit --amendgit rebase --continue 指令来修改对应的内容,直到所有的 commit全部修改完成。
  3. 可以执行 skip 跳过当前的commit修改, abort 放弃所有的修改,包含之前的修改
# 1. 跳过对当前的这笔 commit 进行修改
  git rebase --skip
# 2. 放弃对所有 commit的修改,之前已完成修改的内容也全部会被丢弃
  git rebase --abort

【参考资料】

  1. Git 修改已提交 commit 的信息
  2. git-rebase

标签:git,author,--,修改,提交,commit,message
来源: https://www.cnblogs.com/Jeffxu/p/16697325.html