使用git进行中期合并,希望忽略特定文件夹中的合并冲突

wyyhbhjk  于 2023-04-04  发布在  Git
关注(0)|答案(1)|浏览(118)

我正在进行一个相当耗时的合并(将master合并到我的分支中),并解决了所有需要解决的冲突。然而,git告诉我,文件夹中还有一堆冲突需要解决。
我想告诉git只使用我的分支版本的文件夹中的所有内容,忽略master中的任何内容。我试过:
git checkout --ours path/to/folder
但是git告诉我X文件没有我们的版本
我不明白这一点,因为我以为我输入的命令是在告诉git '我不在乎冲突是什么-只要把我的分支的文件夹,然后继续'。
这看起来应该是非常基本的,因为基于文件的等价物很简单(合并,获取我们的分支版本,获取主分支版本)。我希望文件夹存在等价物(即获取此文件夹中所有内容的分支版本)
我很清楚自己搞砸了,所以虽然this question on SO似乎在问几乎相同的问题,但答案似乎涉及多个步骤,我担心搞砸了整个合并,不得不重新开始。
欢迎大家提出建议,告诉我如何实现“忽略此文件夹中的所有冲突”。

neekobn8

neekobn81#

一个简单的解决方案是:

git checkout <COMMIT_HASH> -- path/to/folder

如果git log因为合并没有给予你一个可用的提交哈希,你可以从git reflog得到一个最近的。
如果您有当时未编入索引的新文件,可以使用

git clean -fd -- path/to/folder

**!!!**为了避免在这里搞砸并删除您仍然需要的东西,请提前使用git clean -nd -- path/to/folder来试运行该命令

完成了!现在只需git add -A -- path/to/folder来暂存文件夹。

相关问题