我有一个非常基本的工作环境,但没有按照需要与Git合作。
以下是我们如何描述它:两个分支A和B,每个分支在工作树中有两个文件,第一个文件是toMerge,第二个文件是toKeepSpecific。
我在两个分支中有相同的.gitignore说要忽略toKeepSpecific文件。从未在远程存储库中推送过toKeepSpecific文件,这两个分支只包含toMerge。
我遇到的问题是,当我在分支B上并尝试检出分支A时,我有以下消息:“以下未跟踪的工作树文件将被checkout覆盖”。我认为.gitignore会处理这个但显然不是......
满足这种需求的最合适的git环境是什么?
谢谢!
答案 0 :(得分:2)
git ignore告诉git 不要通过特定名称跟踪文件的内容。
修改这只会阻止git将文件显示为未跟踪,或在git add
之后自动跟踪它们。 它不适用于当前跟踪的文件。您需要首先从想要忽略它们的分支中手动删除它们。
IOW:git ignore不影响现有修订版。继续跟踪跟踪文件,直到您将其删除
无论如何,永远不会在没有警告的情况下覆盖本地文件,即使它们(当前)没有被跟踪也是如此。当然,这正是为了防止切换分支上的数据丢失。
许多git命令接受--force-
选项继续前进,所以如果你知道自己在做什么,请务必使用它。
如果您使用的git工作流不允许使用--force
选项,那么我建议您在执行之前使用git clean -x
命令清除未跟踪(即忽略)的文件分支开关