我正在学习 git 并且惊讶于在主题分支中创建的暂存文件在 check out 到 master 时不会被删除。
例如:
git checkout -b topic
nano newfile.txt
git add newfile.txt
git checkout master // newfile.txt is still in the working directory, even though it was created in topic branch
我很清楚 git clean
命令,只是我希望如果您 check out 到不同的分支,所有从未提交的文件都会被删除。
我是不是遗漏了什么或者这是 git 的预期行为?
最佳答案
这是预期的行为。如果我必须描述它(欢迎任何人对我的解释提出异议),我会这么说,因为您的 newfile.txt
尚未 checkin 并且 master
中没有任何内容> 分支与 newfile.txt
关联,但是 git
不应该删除它不负责的文件。在正常情况下,我们不希望 git
偷偷摸摸地修改尚未添加到 repo 中的文件。另一方面,如果文件已添加到存储库,则 git
删除更改是公平的游戏。
也就是说,正如您已经建议的那样,可以通过 git clean
命令删除目录中的这些类型的文件。
关于git checkout 不会删除从未提交的暂存文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56243900/