如何避免.gitignore中的文件继续显示在另一个分支?

时间:2015-11-20 04:27:17

标签: git

我有两个分支,其中包含自己的node_modules版本,但在不同的文件夹中。

分支1:

--client/
--server/
--node_modules/
...

分支2:

--server/
-----/node_modules/
...

因此,当我从Branch 2 -> Branch 1切换时,它包含以下文件夹:

--client/
--server/
-----/node_modules/
--node_modules/
...

这是一个错误,因为Node将使用嵌套版本而不是外部版本。所以,我的问题是如何在签出另一个分支时消除.gitignore中指定的文件,例如node_modules

1 个答案:

答案 0 :(得分:1)

您可以尝试(干运行测试)

git clean -d -x -n

在git checkout之后看,如果那样会删除正确的文件 请参阅“How do I clear my local working directory in git?

另一种方法是git reset --hard之后的git checkout

如果您无法轻松删除(.gitignore'd)node_modules文件夹,则第三种方法是在两个不同的文件夹中工作,每个文件夹一个。 请参阅“Multiple working directories with Git?”:自Git 2.5+以来,您可以克隆一次,并检查不同文件夹中的不同分支。
切换分支变得像cd ../otherbranch一样简单。