在git reset --hard之后,uncommited和unstated文件会发生什么?

rav*_*avi 1 git git-reset

我正在尝试理解git reset命令.我有一个包含文件file_1的初始commit_A.

  • 现在我在我的工作目录中添加了file_2,我没有上传.如果我git reset --hard现在运行,file_2仍然在工作目录中.

  • 但是,如果我暂存file_2然后运行git reset --hard,则file_2将被取消暂停并从工作目录中删除.

为什么在第二种情况下将file_2从工作目录中删除而在第一种情况下不删除?

Ahm*_*ani 5

在第一种情况下,file_2不会跟踪,因为您只是将其添加到工作目录而不进行暂存或将其嵌入到提交中.执行git reset --hard将对这些文件没有影响,因为它没有被git跟踪.

在第二种情况下,您开始跟踪file_2(通过暂存),这意味着运行git reset --hard重置您的工作目录,包括file_2然后从您的暂存区域和工作目录中删除它.

我还建议你深入研究一下关于重置角色的这篇解释得很好的文章(完整的例子).