Git 修改历史 commit 提交信息
·
修改最近一条提交的消息
git commit --amend
修改多条提交信息
- 查看提交记录
git log
查看提交记录,可以看到commit 后面的 commitId
- 选择要修改的条数
// 使用 commitId 方式
git rebase -i 9217a88c7fad0917b83d4abaeac127197f7c7a7d
// -i后面的参数为需要修改的commit前一次 对应的 commitId
// 或指定修改条数
git rebase -i HEAD~3 // 最近3条
我的 Git Bash 会自动打开 VsCode 编辑,省去的部分命令行操作
- 进入 vim 编辑模式
根据自己需要选择修改方式,我这里需要修改前3条的 commit message,将pick
修改为reword
;
命令行面板修改完之后,按 Esc 退出编辑,输入:wq
保存并退出,之后就会进入编辑界面。
命令行窗口会出现提示信息,意思是如果要改日志,执行git commit --amend
,修改完成后执行git rebase --continue
;
如果还有下一个修改,会提示再次输入,直到完成。
git 几种修改选择:
- pick:保留该 commit
- reword:保留该 commit,但我需要修改该commit的 Message
- edit:保留该 commit, 但我要停下来修改该提交(包括修改文件)
- squash:将该 commit 和前一个 commit 合并
- fixup:将该 commit 和前一个 commit 合并,但我不要保留该提交的注释信息
- exec:执行 shell 命令
- drop:丢弃这个 commit
- 查看提交记录
git log
- 更新到远程仓库
git push origin <branch_name> -f // 一定要加上-f强制推送上去才可以
提示:进入 REBASE 状态之后,退出 REBASE 状态,使用以下命令
git rebase --abort
Git修改已经提交的用户名信息
- 指定修改条数
git rebase -i HEAD~3 // 最近3条
-
将
pick
修改为edit
;
命令行面板修改完之后,按 Esc 退出编辑,输入:wq
保存并退出,之后就会进入编辑界面。 -
这一步是关键,我们主要目的是修改提交者的信息,使用命令:
git commit --amend --author="作者 <邮箱@xxxx.com>" --no-edit
# 例如:git commit --amend --author="LL <test@163.com>" --no-edit
- 继续执行下一条,直到操作完成,然后更新到远程仓库
git push -f
撤消有冲突的git merge
git merge --abort
这将尝试将您的工作副本重置为合并之前的任何状态。这意味着它应该还原合并之前的所有未提交的更改,尽管它不能始终可靠地进行还原。通常,您无论如何都不应与未提交的更改合并。
git reset --hard
删除所有未提交的更改,包括未提交的合并。有时,即使在支持上述命令的较新版本的Git中,此行为也很有用。
git reset HEAD
就是回退到当前版本。git reset HEAD^
回退到上一版本。
git reset HEAD
操作只对暂存区起效果,不对工作区的内容起效果。
在 Git 中显示有关远程仓库的信息
git remote show origin
更多推荐
已为社区贡献3条内容
所有评论(0)