为什么对一个分支的git修改也会修改另一个分支

为什么对一个分支的git修改也会修改另一个分支,git,Git,我已经读过这个问题:我理解(我希望)git是如何工作的 你能给我解释一下为什么它是这样工作的吗?我不理解这种心态。我只发现了缺点,但没有优点…这个想法是在没有明确用户授权的情况下不更改正在修改的文件:这就是“心态”:没有不必要的“惊喜” 默认情况下,更改分支不会更改已修改的文件。 如果这些修改过的文件在签出过程中被覆盖,它实际上会阻止签出:这些更改是保留还是删除,由用户决定 “在实践中”:你不需要一个工具来“为你”做任何事情。您希望以您想要的方式使用该工具 如果要清除未跟踪的文件: ,或 使用

我已经读过这个问题:我理解(我希望)git是如何工作的


你能给我解释一下为什么它是这样工作的吗?我不理解这种心态。我只发现了缺点,但没有优点…

这个想法是在没有明确用户授权的情况下不更改正在修改的文件:这就是“心态”:没有不必要的“惊喜”

默认情况下,更改分支不会更改已修改的文件。
如果这些修改过的文件在签出过程中被覆盖,它实际上会阻止签出:这些更改是保留还是删除,由用户决定

“在实践中”:你不需要一个工具来“为你”做任何事情。您希望以您想要的方式使用该工具

如果要清除未跟踪的文件:

  • ,或
  • 使用git签出--.,或
  • 如果您想在以后重用正在进行的工作

切换分支时,工具本身无法决定如何处理这些未跟踪/修改的文件。

好吧,这个想法看起来不错,但实际上:我正在处理master,我已经修改了一些文件,当我想进行重构时。因此,我创建了一个新的分支refacto并对其进行了处理。我删除了一些以前在master上创建但尚未提交的文件。重构最终不是一个好主意,我决定“还原”到master并删除重构分支。但在主分支未提交文件中,从“重构”分支中删除。我怎样才能避免这个问题?即使我很理解这个想法,我也不明白git为什么会这样工作,有什么好处?@Calfater“在实践中”:你不想让工具“为你”做任何事情。您希望以您想要的方式使用该工具。如果要清理未跟踪的文件,请清理工作树:,或使用()
git checkout--.
(如果以后要重用正在进行的工作,请将其隐藏)