修改git commit的author信息

本地有多个git账号时,容易发生忘记设置项目默认账号,最后以全局账号提交的情况,其实对代码本身并无影响,只是提交记录里显示的是别的名字稍显别扭。

查看提交日志,假设以a(a@email.com)提交了三次,发现提交用户错了,应该用b用户提交:

$ git log

# 输出如下
commit 3 (HEAD -> branch1)
Author: a <a@email.com>
Date: Thu Nov 22 16:22:59 2018 +0800
    commit 3
commit 2 (HEAD -> branch1)
Author: a <a@email.com>
Date: Thu Nov 22 16:22:59 2018 +0800
    commit 2
commit 1 (HEAD -> branch1)
Author: a <a@email.com>
Date: Thu Nov 22 16:22:59 2018 +0800
    commit 1

重置本项目用户信息:

$ git config user.name 'b'
$ git config user.email b@email.com

使用amend命令修改commit信息:

$ git commit --amend --reset-author

amend命令只会修改最后一次commit的信息,之前的commit需要使用rebase:

$ git rebase -i HEAD~3

# 输出如下
pick 1 commit 1
pick 2 commit 2
pick 3 commit 3

要修改哪个,就把那行的pick改为edit,然后退出。例如想修改commit 1的author,光标移到第一个pick,按i键进入INSERT模式,把pick改为edit:

edit 1 commit 1
pick 2 commit 2
pick 3 commit 3
...
-- INSERT --

然后按esc键,退出INSERT模式,输入:wq退出,这时可以看到提示,可以修改commit 1的信息了:

Stopped at 1 commit 1
You can amend the commit now, with
    git commit --amend
Once you are satisfied with tour changes, run
    git rebase --continue

输入amend命令重置用户信息:

$ git commit --amend --reset-author

会出现commit 1的提交记录及注释内容,可进入INSERT模式修改注释,:wq退出。这时再查看提交历史,发现commit 1的author已经变成b(b@email.com)了,且是最新一次记录。

通过continue命令回到正常状态:

$ git rebase --continue


 

### 修改Git历史提交记录中的备注信息 对于最近的一次提交,可以通过命令`git commit --amend`进入上次提交的记录进行修改[^1]。在打开的编辑器中找到上次提交的备注,按照需求更改为新的备注内容。完成编辑后,按ESC退出编辑模式,并输入`:wq!`保存并退出。 若要修改倒数第二次或更多之前的提交,则可采用交互式变基的方式来进行调整。具体来说,通过执行`git rebase -i HEAD~N`(其中N表示要回溯的提交次数),将目标提交前的操作由`pick`改为`e`以启动编辑流程[^2]。在此过程中同样利用`git commit --amend`来变更对应的提交说明,在每次修改完毕之后继续使用`git rebase --continue`推进整个过程直至结束。 值得注意的是,当涉及到对最早期提交的信息修正时,比如首条提交的时间戳更新等问题,可以借助于`git filter-branch`工具配合环境变量设置实现特定条件下的属性重置[^3]。 ```bash git filter-branch --env-filter ' if [ $GIT_COMMIT = $(git rev-list --max-parents=0 HEAD) ] then export GIT_AUTHOR_DATE="指定日期" export GIT_COMMITTER_DATE="指定日期" fi' --all ``` 此外,在集成开发环境中如IDEA里也可以方便地管理Git仓库的相关操作。例如,用户可以选择撤消某次提交而不影响工作区内的改动状态,从而有机会重新整理并再次提交带有正确描述的新版本[^4]。 最后提醒一点,任何涉及改变已有提交ID的行为(像强行推送到远端分支),都需要谨慎处理以免引起协作上的混乱。特别是当团队成员之间共享同一个远程库的情况下,应当提前沟通好此类变动计划。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值