Git:使用带有不同分支的.gitignore

时间:2011-05-19 10:44:11

标签: git gitignore git-branch

我有一个非常基本的工作环境,但没有按照需要与Git合作。

以下是我们如何描述它:两个分支A和B,每个分支在工作树中有两个文件,第一个文件是toMerge,第二个文件是toKeepSpecific。

我在两个分支中有相同的.gitignore说要忽略toKeepSpecific文件。从未在远程存储库中推送过toKeepSpecific文件,这两个分支只包含toMerge。

我遇到的问题是,当我在分支B上并尝试检出分支A时,我有以下消息:“以下未跟踪的工作树文件将被checkout覆盖”。我认为.gitignore会处理这个但显然不是......

满足这种需求的最合适的git环境是什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

git ignore告诉git 不要通过特定名称跟踪文件的内容

修改这只会阻止git将文件显示为未跟踪,或在git add之后自动跟踪它们。 它不适用于当前跟踪的文件。您需要首先从想要忽略它们的分支中手动删除它们。

IOW:git ignore不影响现有修订版。继续跟踪跟踪文件,直到您将其删除


无论如何,永远不会在没有警告的情况下覆盖本地文件,即使它们(当前)没有被跟踪也是如此。当然,这正是为了防止切换分支上的数据丢失。

许多git命令接受--force-选项继续前进,所以如果你知道自己在做什么,请务必使用它。

如果您使用的git工作流不允许使用--force选项,那么我建议您在执行之前使用git clean -x命令清除未跟踪(即忽略)的文件分支开关

相关问题