Git 撤销上一次提交 并将暂存区文件重新提交

把刚刚提交到的版本库的操作撤销掉,并将正确的版本提交 这时我们就需要用到 git commit –-amend 命令

我们把文件修改为正确的,然后 git add 到暂存区 再使用 git commit -–amend 命令
这时 Bash 会提示

1
2
$ git commit --amend
hint: Waiting for your editor to close the file...

并在编辑器弹出 COMMIT_EDITMSG

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version 0.1.6

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Date: Wed Jul 3 11:00:38 2019 +0800
#
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 1 and 1 different commits each, respectively.
# (use "git pull" to merge the remote branch into yours)
#
# Changes to be committed:
# modified: readme.md
#

最上面的 version 0.1.6 是我们上次提交是的备注
下面的 modified: readme.md 则表明我们这次重修提交修改了 readme.md 文件
如果需要修改备注则修改最上边的备注并保存,不需要直接退出关闭即可
提交成功:

1
2
3
[master 5df6a16] version 0.1.6
Date: Wed Jul 3 11:00:38 2019 +0800
1 files changed, 1 insertions(+), 1 deletions(-)

再次查看日志 git log --oneline

1
2
3
4
5
6
$ git log --oneline
7475748 (HEAD -> master) version 0.1.6
9750475 version 0.1.5
c1dd820 version 0.1.4
b3d104c version 0.1.3
...

发现只有 1 次 version 0.1.6 提交说明我们刚刚是在修改而不是再次提交

如果需要再 push 到远程库需要加上 --force/-f 参数

1
$ git push --force