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

时间:2013-08-22 19:03:58

标签: 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从工作目录中删除而在第一种情况下不删除?

1 个答案:

答案 0 :(得分:5)

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

在第二种情况下,您开始跟踪file_2(通过暂存),这意味着运行git reset --hardreset您的工作目录,包括file_2,然后将其删除来自您的临时区域和工作目录。

我还建议您在well explained article上深入了解the role of reset(完整示例)。