我正在进行一次相当耗时的合并(将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
来启动文件夹。