📜  git commit --amend with commit id - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:41:25.573000             🧑  作者: Mango

介绍

在 Git 中,使用 git commit 命令可以将修改提交到 Git 仓库中。但是,如果你想要对已经提交的修改进行一些修改或者添加遗漏的文件,可以使用 git commit --amend 命令。

该命令可以修改最近一次提交的 commit message,或者同时也可以添加更改过的文件以及对代码进行微小的调整。

用法

要使用 git commit --amend 命令,需要先知道最近一次提交的 commit id。有两种方式可以获取 commit id。

方法一:使用 git log 命令

使用 git log --oneline 命令可以看到 commit 的历史记录。获取最近一次提交的 commit id 后,即可使用 git commit --amend 命令进行修改。

$ git log --oneline
e6d1f1d (HEAD -> master) Fix a bug
d3a42d8 Add a new feature
24c24ea Initial commit
方法二:使用 git reflog 命令

如果你已经忘了最近一次提交的 commit id,可以使用 git reflog 命令来查看 Git 引用日志。其中,HEAD@{n} 表示当前分支的第 n 次操作。

$ git reflog
e6d1f1d (HEAD -> master) HEAD@{0}: commit: Fix a bug
d3a42d8 HEAD@{1}: commit: Add a new feature
24c24ea HEAD@{2}: commit (initial): Initial commit

获取最近一次提交的 commit id 后,即可使用 git commit --amend 命令进行修改。

$ git commit --amend

此时,会打开一个编辑器,允许你对 commit message 进行修改。修改完成后,保存文件并退出编辑器。

此外,你还可以使用 git commit --amend 命令来添加更改过的文件以及对代码进行微小的调整。此时,可以先使用 git add 命令将修改后的文件添加到暂存区,然后再使用 git commit --amend 命令进行提交。

$ git add .
$ git commit --amend
注意事项
  • 尽量避免在已经发布的分支上修改历史记录,这可能会导致其他人的工作出现问题。
  • git commit --amend 命令只能对最近一次提交进行修改,如果要修改较早的提交可以使用 git rebase 命令。
  • 修改 commit message 可能会影响到提交的 SHA 值,这会影响到依赖于该提交的其他操作,比如 git revert 命令,使用时需谨慎。