为什么Git在切换分支时不删除某些文件?

时间:2010-11-11 16:27:25

标签: git git-branch

我经常遇到这种情况。我正在研究一个主分支,我需要测试一个插件,所以我创建一个新分支并检查它。我将插件下载到项目目录中并进行测试。然后我切换回主分支并删除我创建的分支。

最终发生的事情是插件的文件保留在项目目录中。我想知道这是否是正常行为。为了在分支机构之间进行无缝切换,我该怎么做?

3 个答案:

答案 0 :(得分:12)

git不会从您的工作副本中删除未跟踪的文件,因此除非您添加了插件的文件并在新分支上创建了提交,否则git将不会对您的插件文件执行任何操作。

如果要从工作树中删除未跟踪的文件,请使用git clean - 请注意,它将从磁盘中删除任何未跟踪的文件,并且无法从中恢复(不使用取消删除软件)

答案 1 :(得分:0)

尝试结帐-f

请参阅git --help checkout:

即使索引或工作树与HEAD不同,也要继续。 这用于丢弃本地更改。

答案 2 :(得分:0)

如果要在目录结构不同的分支之间来回切换,并且发现遗留了一些工件,则可能需要运行:

git clean -df

这将“删除”“强制”。您将丢失所有未跟踪的文件,我认为这可能只有一步之遥:

git reset --hard