关于git add:最后一次git-add的时间

time of last git-add

请注意,请先阅读我的问题,然后再将其标记为"如何撤消最后一个git添加"的副本。

最后一次执行git add .时,是否有Git本地方法?

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

上周六我在我的设备上测试了iOS应用程序。所以我想知道最后一个git add .是什么时候被处决的。如果在上周六之前执行,我可以在今天的代码中找到这个bug。


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

1
git reset HEAD~1

然后使用:

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.


不,没有。

我建议您尽快提交代码,稍后您可以使用git-rebase轻松地将多个提交合并到一个提交中。


您可以检查.git/index或bash历史记录。请参阅Elpiekay的评论。


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

这绝对不是最简单的方法,但即使我们不止一次使用cx1(5),它也可能有效。

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
# 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,那么最新的创建日期可能就是您想要的日期。