1

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

  • 现在我在我没有暂存的工作目录中添加了 file_2。如果我git reset --hard现在运行,file_2 仍保留在工作目录中。

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

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

4

1 回答 1

5

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

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

我还建议您更深入地阅读这篇解释清楚的文章(充满示例),了解 reset 的作用

于 2013-08-22T19:15:49.623 回答