是这样,最近两次提交的 commit message 写的有些问题,所以想改一下,查了一下是用git commit -amend
命令,于是进行了下面一系列操作(两次 commit 在下面分别称为最近一次和上一次吧,最近一次就是刚才即 22 日下午,上一次是 20 日晚上):
1 、运行git commit -amend
后打开了 vim,编辑了最近一次的 message,保存退出后运行git log
查看发现一切 OK
2 、想修改上一次的 message,查了下上次 commit id 开头是 6b2c8b16,于是运行git commit --amend 6b2c8b16
,报错提示error: 路径规格 '6b2c8b16' 未匹配任何 git 已知文件
,简单搜了下尝试运行了git commit -c 6b2c8b16 --amend
,打开了 vim,没仔细看后面#开头的文件变动列表(后来再次运行确认了是最近一次的文件变动列表),改完了保存退出
3 、运行git log
确认修改结果,发现悲剧了,最近一次的 commit message 没有了,取而代之的是刚修改的上一次的 message,诡异的是 Date 行显示的也是上一次的提交日期,可是git status
并查看代码发现最近一次的修改没有回滚,疑惑到底发生了什么
4 、安装了 sourcetree 打开项目,发现 commit 列表显示的最近一次的日期是刚才 vim 修改 message 的时间,即它跟 git log 中 Date 行显示的并不一样。而 source tree 的概况窗口显示如下:
提交:8882c410631f5418b0b7ed14c8bc7777fca9f312 [8882c41]
父级:6b2c8b16d5
日期:2021 年 8 月 20 日 23:05:02
提交时间:2021 年 8 月 22 日 15:05:21
我的问题是:
1 、步骤 3 中描述的问题该如何解决呢? git log 显示的日期不是实际 commit 的时间太别扭了。
2 、我运行的git commit -c 6b2c8b16 --amend
导致的结果是设计中的吗,还是误用命令触发了 bug 什么的?
3 、修改之前的 commit message 的正确命令是什么?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.