与git合并,想要忽略特定文件夹中的合并冲突

  • 本文关键字:合并 文件夹 冲突 git git
  • 更新时间 :
  • 英文 :


我正在进行一次相当耗时的合并(将master合并到我的分支中),并解决了我需要解决的所有冲突。但是,git告诉我文件夹中有很多冲突需要解决。

我想告诉git只取这些文件夹中分支的所有版本,而忽略master的所有版本。我试过:

git checkout—our path/to/folder

但是git非常无助地告诉我X文件'没有我们的版本'

我不明白这一点,因为我以为我输入的命令是告诉git '我不在乎冲突是什么-只要拿走我分支的文件夹并继续'。所以它怎么可能"没有我们的版本"呢?

这看起来应该是相当基本的,因为基于文件的等效版本很简单(合并,取我们的分支版本,取主分支版本)。我希望在一个文件夹中存在一个等价的(例如,取这个文件夹中所有内容的分支版本)

我很清楚自己搞砸了这个问题,所以虽然这个问题似乎在问几乎相同的事情,答案似乎涉及多个步骤,我很小心搞砸了整个合并,不得不重新开始。

关于如何完成这种"忽略此文件夹中的所有冲突"的建议,欢迎提出。

一个简单的解决方案是:

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来启动文件夹。