请原谅我一直以来提出的问题,因为我什至不确定要问什么或如何措辞。
我们正在与几个长期运营的分支机构合作开发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
以外的历史记录。
我认为发生这种情况的某些原因可能是我们混合了直接提交,对开发和分支机构进行基础调整和合并,以及对开发到分支机构进行合并和重新调整的混合。现在它们不匹配,并且两个分支之间的各种文件夹和文件的内容也不相同,我们没有(或不应该)在我们分支的项目文件夹外部更改过的文件夹和文件。如果有一种方法可以在分支机构的整个历史中放弃对文件和文件夹之外的所有更改,那么我认为这最终就是我们想要的。