我正在尝试理解 git reset 命令。我有一个包含文件 file_1 的初始 commit_A。
现在我在我没有暂存的工作目录中添加了 file_2。如果我
git reset --hard
现在运行,file_2 仍保留在工作目录中。但是,如果我暂存 file_2 然后运行
git reset --hard
,则 file_2 将被取消暂存并从工作目录中删除。
为什么在第二种情况下从工作目录中删除 file_2 而在第一种情况下没有删除?
在第一种情况下,file_2
不会被跟踪,因为您只是将其添加到工作目录中而没有暂存或将其嵌入到提交中。执行git reset --hard
将不会对这些文件产生影响,因为它没有被 git 跟踪。
在第二种情况下,您开始跟踪file_2
(通过暂存它),这意味着运行git reset --hard
将重置您的工作目录,包括file_2
,然后将其从暂存区域和工作目录中删除。
我还建议您更深入地阅读这篇解释清楚的文章(充满示例),了解 reset 的作用。