我有一个包含一些未跟踪文件的分支。我想将另一个分支合并到它上面。
第二个分支包含一个已跟踪文件,但对于第一个分支来说是未跟踪的。会出现以下错误:
错误:合并时下列未跟踪的工作树文件将被覆盖:...
是否有可能覆盖这些未跟踪的文件,并用第二个分支中的文件替换它们,而不知道它们是哪些文件?
我也尝试了-X theirs,在这种情况下似乎不起作用。
对未跟踪的文件进行储藏:
git stash -u
然后您就可以合并分支了。
根据文档:
如果使用了
--include-untracked
选项,则所有未跟踪的文件也会被存储并通过git clean清除,使工作目录处于非常干净的状态。如果改为使用--all选项,则忽略的文件也将被存储并清理。
--all
,但我从来没有必须这样做过。 - cst1992
git ls-files --others
)和您打算合并的提交中的文件集(git ls-tree -r <commit>
)。两个集合的交集命名了Git需要覆盖的文件。移动或删除这些文件,准备工作就完成了。 - torek