dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2168
  • 铜币13301枚
  • 威望5857点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
阅读:85回复:0

如何撤销或者修正 git commit 提交?

楼主#
更多 发布于:2018-11-13 08:53
问题描述
在二级子目录提交完后,发现漏掉了几个文件没有加,强迫症不想再提交一次,想要撤消刚才的提交操作。
git commit -m 'setup four 登录功能'
[master f2e4f3f] setup four 登录功能
 2 files changed, 84 insertions(+)
 create mode 100644 templates/index.html
 create mode 100644 templates/registration/login.html

git status
位于分支 master
尚未暂存以备提交的变更:
  (使用 "git add <文件>..." 更新要提交的内容)
  (使用 "git checkout -- <文件>..." 丢弃工作区的改动)

    修改:         ../auth/urls.py
    修改:         ../db.sqlite3
    修改:         ../users/views.py

修改尚未加入提交(使用 "git add" 和/或 "git commit -a")

解决方法
git 提供一个选项 --amend ,用于修改最后一次提交
此命令将使用当前的暂存区域快照提交。如果刚才提交完没有作任何改动,直接运行此命令的话,相当于有机会重新编辑提交说明,但将要提交的文件快照和之前的一样。
启动文本编辑器后,会看到上次提交时的说明,编辑它确认没问题后保存退出,就会使用新的提交说明覆盖刚才失误的提交。
cd ../
git add auth/urls.py db.sqlite3 users/views.py
git commit --amend

两次的 commit 命令最终只是产生一个提交,第二个提交命令修正了第一个的提交内容

验证
git log
Author: dongnan <dongnan@zongming.net>
Date:   Sat Sep 29 09:35:53 2018 +0800

    setup four 登录功能

commit f36ae5ca50f8eb101e8077d3fa5899dd608d3366
Author: dongnan <dongnan@zongming.net>
Date:   Sat Sep 29 09:06:54 2018 +0800

    setup three 注册功能
...省略

# reflog
git reflog | head -n2
b62aa2f HEAD@{0}: commit (amend): setup four 登录功能
f2e4f3f HEAD@{1}: commit: setup four 登录功能

内容参考自: Git 基础 - 撤消操作
#
游客

返回顶部