【发布时间】:2021-02-17 16:13:15
【问题描述】:
我有一个忽略某个文件的分支(我们称之为B),而在其他一些分支(例如分支A)中不会忽略该文件。当我从分支 B 切换到分支 A,然后再切换回 B 时,文件已被删除。
这正常吗?我可以看到它是如何发生的,从某种意义上说,分支 B 认为它不存在,而分支 A 认为它存在,所以当我回到 B 时,它会“整理它”。但这有点烦人。
有什么建议吗?
【问题讨论】:
-
有什么理由不能在所有分支中忽略它或将它包含在所有分支中?
-
这里有个有趣的问题:如果你把它添加到分支A的.gitignore,然后又想把它添加到分支B的.gitignore,你必须checkout分支B,此时文件是已删除 - 在您有机会忽略它之前。您的工作目录中可能需要一个脏的 .gitignore,当您切换分支以避免文件被删除时,包含该文件。
-
@Alison G:你的情况没有多大意义。为了使这一切发生,必须在分支 A 上跟踪文件。因此,您永远不会将其添加到分支 A 上的 gitignore。该文件被删除,因为它在一个分支上被跟踪,并且另一边不存在。忽略它的唯一影响是允许您从 B 转到 A 而不会被警告您正在覆盖工作树中的文件。
-
@Alison G - 是的,我认为这正是实际发生的事情。 @Jefromi 是的,也许这没有多大意义。我可能以错误的顺序处理事情。我有一个文件实际上列在 .gitignore 中,但也被跟踪。我注意到了这种差异,并将其从缓存文件列表中删除。然后我切换了分支,它从我切换到的分支中删除了它。
-
@ewall - 完全没有理由,当它发生时,我会在所有分支中忽略它。但它在我有机会之前删除了它。
标签: git