上次 git-add 的时间

time of last git-add

注意,请先阅读我的问题,然后再将其标记为 how-can-you-undo-the-last-git-add.

的副本

是否有 git 本机方法来获取最后一个 git add . 执行的时间?

我最近在我的 ios 项目中做了一些编码,并在没有提交的情况下执行了 git add .。 今天也在项目中写代码,遇到了一个bug。我用git diff检查今天的工作,并没有发现任何可能导致错误的更改。

我上周六在我的设备上测试了 ios 应用程序。所以我想知道最后一个git add .是什么时候执行的。如果是在上周六之前执行的,我今天的代码就能定位到bug了。

没有,没有。

我建议您尽快提交代码,稍后您可以使用 git-rebase

轻松地将多个提交合并为一个提交

您需要首先使用以下命令将 added / staged 声明的文件(您通过 git add . 完成)转换为 modified 状态:

git reset HEAD~1

然后使用:

git diff

以便您现在可以看到代码差异。

供参考:

When you start an empty repository and add a file, it will be in the untracked state,

When you use git add, Those files are now in staged state and ready to be committed inside the repository

To UNDO git add, just use git reset HEAD~1, so staged state files can be converted to untracked state.

最佳方法:检查 blob 文件的创建日期。

这绝对不是最简单的方法,但即使我们 git add 不止一次,它也可能有效。

当我们git add一个文件时,git可能.git/objects中创建一个blob文件:

(它也可以在不创建新文件的情况下重用现有的 blob)

# add a new file to index
$ echo gimme-a-new-blob > a
$ git add a

# list blob objects in stash
$ git ls-files --stage
...
100644 facd29e7e5ab3a8764cd7702daefc4f2b6515edd 0       a
...

# check the blob file, filenamed is based on sha1 of that blob
$ ls -l .git/fa/cd*
19 Jun  1 21:14 .git/objects/fa/cd29e7e5ab3a8764cd7702daefc4f2b6515edd

如果我们检查索引中文件的所有 blob,最新的创建日期可能就是您想要的。

您可以查看 .git/index 或查看 bash 历史记录。参考ElpieKay的评论。