我正在尝试理解git reset命令。我有一个包含文件file_1的初始commit_A。
现在我在工作目录中添加了file_2,但我没有
上演。如果我现在运行git reset --hard
,则file_2仍然保留在工作目录中。
但是如果我暂存file_2然后运行git reset --hard
,则file_2将被取消暂停,并且也会从工作目录中删除。
为什么在第二种情况下将file_2从工作目录中删除而在第一种情况下不删除?
答案 0 :(得分:5)
在第一种情况下,不会跟踪file_2
,因为您只是将其添加到工作目录而不将其暂存或嵌入到提交中。
执行git reset --hard
将对这些文件没有影响,因为它不会被git跟踪。
在第二种情况下,您开始跟踪file_2
(通过暂存),这意味着运行git reset --hard
将reset您的工作目录,包括file_2
,然后将其删除来自您的临时区域和工作目录。
我还建议您在well explained article上深入了解the role of reset(完整示例)。