发布于2026-07-22 阅读(0)
扫一扫,手机访问
本地有多个git账号时,很容易出现这种情况:某个项目忘记设置专属账号,结果提交时用了全局账号。其实代码本身没问题,就是提交记录里的名字看着不太对劲。下面说说怎么改回来。
先看看当前提交记录。假设你发现最近三次提交都是以 a(a@email.com) 的身份提交的,但实际应该用 b 用户——那么具体怎么操作呢?
$ git log # 输出如下 commit 3 (HEAD -> branch1) Author: a Date: Thu Nov 22 16:22:59 2018 +0800 commit 3 commit 2 (HEAD -> branch1) Author: a Date: Thu Nov 22 16:22:59 2018 +0800 commit 2 commit 1 (HEAD -> branch1) Author: a Date: Thu Nov 22 16:22:59 2018 +0800 commit 1
首先,把当前项目的用户信息改成正确的。注意这只是针对当前仓库,不会影响全局。
$ git config user.name 'b' $ git config user.email b@email.com
如果只想改最后一次提交,直接用 git commit --amend --reset-author 就行。但这里需要改前三次,所以得用 rebase。
$ git commit --amend --reset-author
amend 只改最近一次提交,之前的提交得用 rebase 来处理:
$ git rebase -i HEAD~3 # 输出如下 pick 1 commit 1 pick 2 commit 2 pick 3 commit 3
打算改哪个提交,就把对应行的 pick 改成 edit,然后保存退出。比如想改 commit 1,光标移到第一行,按 i 进入插入模式,把 pick 改为 edit:
edit 1 commit 1 pick 2 commit 2 pick 3 commit 3 ... -- INSERT --
按 Esc 退出插入模式,输入 :wq 保存退出。这时终端会提示:
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
接下来执行 git commit --amend --reset-author,会弹出编辑窗口,里面显示了 commit 1 的提交信息和注释。你可以按需修改注释(同样按 i 进入插入模式修改,:wq 保存退出)。
$ git commit --amend --reset-author
退出后,再查看提交历史,会发现 commit 1 的 author 已经变成 b(b@email.com) 了,而且它现在是最近的一条记录。
最后别忘了执行 git rebase --continue,让 rebase 流程正常结束。
$ git rebase --continue
整个流程其实不复杂:先设好项目级别的用户信息,然后通过 rebase 的 edit 模式逐个修改目标提交,最后用 continue 收尾。记住,amend 只改最近一次,想改更早的提交就得靠 rebase 了。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8