Git重新设置冲突,放弃历史记录中对文件夹的所有更改

时间:2019-05-23 15:56:42

标签: git git-merge rebase merge-conflict-resolution git-merge-conflict

请原谅我一直以来提出的问题,因为我什至不确定要问什么或如何措辞。

我们正在与几个长期运营的分支机构合作开发monorepo。有一个develop分支是基础分支,但是我们还有一个project-folder-develop分支,该分支只应包含该项目文件夹中的更改。 project-folder-develop的历史与develop有所不同,并且当我们尝试将develop合并到project-folder-develop时,并非所有更改都出现了,并且当我们尝试在此处重新设置基准时冲突比我们无法解决的多。

develop

  • 一些文件
  • 某些文件夹
    • 一些文件

project-folder-develop

  • 一些文件
  • 某些文件夹
    • 一些文件
  • 我们的文件夹
    • 我们的文件

我们的分支应该只对分支上的our folder进行更改(甚至在develop中都不存在),但是由于某些原因,我们在该文件夹之外的更改似乎不匹配一些提交给develop的提交,而没有其他提交。

这真是一团糟。有没有一种方法可以丢弃分支历史记录中项目文件夹之外的所有更改,因此当我们合并或重新建立develop的基础,然后再分支回到develop时,项目文件夹中的所有更改都不存在。我们的分支已经存在,并且只有他们的更改。

因为这是一个monorepo,所以可能有成千上万个文件,每天有数百次提交(直接提交,合并和/或重新部署其所有功能分支),等等。因此,仔细研究它们并解决冲突(尤其是到我们不熟悉的文件,并且分布在十几个团队和数百个开发人员中)可能是一项无法克服的任务。

“有效”结果就像是我们从our project folder中提取our project branch,对分支取裸,然后将our project folder复制回develop,因此外面没有任何变化该文件夹,除了我们希望将更改历史记录保留为our project folder,而没有任何our project folder以外的历史记录。

我认为发生这种情况的某些原因可能是我们混合了直接提交,对开发和分支机构进行基础调整和合并,以及对开发到分支机构进行合并和重新调整的混合。现在它们不匹配,并且两个分支之间的各种文件夹和文件的内容也不相同,我们没有(或不应该)在我们分支的项目文件夹外部更改过的文件夹和文件。如果有一种方法可以在分支机构的整个历史中放弃对文件和文件夹之外的所有更改,那么我认为这最终就是我们想要的。

0 个答案:

没有答案