我如何找出git的检查后挂钩中发生了什么文件



我只是Git的新手据我了解,以下命令将从最新提交中还原"文件名":

git checkout -- filename

当我在签名后获得控制时,我会得到3个参数,即2 shas和一种类型。
两个shas都是相同的,即最后一个提交和类型的sha值为0,这意味着发生了文件的结帐。
但是家,我是否会发现了哪些文件已退出?

文档说:

挂钩有三个参数:

  • 上一个头的裁判,
  • 新头的裁判(可能已经改变或可能没有改变(,
  • 指示结帐是分支结帐(更改分支,flag=1(还是文件结帐(从索引检索文件,flag=0(的标志。

在您的情况下,您的头部没有改变。您可能会将一些修改后的文件初始化回头部内容,但是除此之外,所有已经检查的文件仍被检查出来:

git show --pretty="" --name-only HEAD

由于您尚未更改分支,即使所有文件已经检查出来,标志也设置为0。因此,没有简单的方法可以查看哪些已修改并重置为负责内容。


关键是:检查后的钩子不能影响" Git Checkout"的结果。
换句话说,索引和工作树已经反映了他们的最终状态(并且不记得以前有什么(

如果您需要git checkout .重置文件列表,则最好先进行git stash
然后是git checkout:您的后检查后挂钩可以使用git stash show,以列出结帐前存在的文件。

最新更新