Why git modification on a branch also modify another
我已经读过这个问题:Git分支中修改过的文件正溢出到另一个分支中,我理解(希望)Git是如何工作的。
你能给我解释一下为什么它是那样工作的吗?我不理解这种心态。我只发现缺点,但没有优点…
其思想是在没有明确用户授权的情况下,不要更改正在修改的文件:这就是"心态":没有不想要的"惊喜"。
默认情况下,更改分支不会更改已修改的文件。如果修改后的文件在上述签出过程中被覆盖,它实际上会阻止签出:由用户决定这些更改是保留还是保留。
"在实践中":你不希望一个工具为你做任何事情。你想按照你的意图使用这个工具。
如果要清除未跟踪的文件:
- 清理工作树,或
- 用git checkout -- .重置,或
- 如果您想在以后重用正在进行的工作,请将其存储起来
仅此工具无法决定在切换分支时应如何处理这些未跟踪/修改的文件。
- 好吧,对于这个想法来说,它看起来很好,但实际上:我正在研究master,当我想进行重构时,我已经修改了一些文件。所以,我创建了一个新的分支重构并对其进行处理。我删除了一些以前在master上创建但尚未提交的文件。重构最终不是一个好主意,我决定"还原"到master并删除重构分支。但在主分支中,未提交的文件从"重构"分支中删除。我怎样才能避免这个问题?即使我很了解这个想法,我也不明白为什么Git会这样工作,有什么好处?
- @考法特:"在实践中":你不想让一个工具为你做任何事情。你想按照你的意图使用这个工具。如果要清除未跟踪的文件,请清理工作目录树:stackoverflow.com/a/64966/6309,或者使用(stackoverflow.com/a/19032417/6309)git checkout -- .重置它(或者如果以后要重新使用正在进行的工作,请使用stash it stackoverflow.com/a/20609889/6309)。