git checkout 不会删除从未提交的暂存文件

标签 git git-checkout

我正在学习 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/

相关文章:

git - Grails .gitignore 的建议

git - 在一系列 git 提交中提取对单个文件的更改

python - 在 Django ORM 之外编辑数据库

git - 如何输入 Git SSH key 的密码?

git stash 错误 : git stash pop and ended up with merge conflicts

Git 部署 : How to rollback to previous stable version of my app?

c++ - 在Solaris 9上安装Git

bash - -bash : syntax error near unexpected token `(' while git checkout

linux - Git : mysterious changes cannot be undone 的奇怪行为

git:从另一个分支 checkout 文件到当前分支(不要将 HEAD 切换到另一个分支)