表面上看,这似乎与数百万个有关修改git仓库中历史记录的类似问题相同,但我认为我的情况有些不同,并且我没有找到适合我的解决方案。
我有一个git存储库,在某个时间点上,其中一名程序员无意中,以某种方式,引入了来自不同存储库的代码,而且该(先前不相关的)存储库的整个历史记录现在已成为我的存储库提交日志的一部分。
查看提交,很清楚地知道“引入”这个历史记录的确切提交。
在该提交之后,我们没有接触过任何这些文件。
我想要完全从我的存储库中删除所有这些不相关的提交。 如果必须逐个提交进行操作,我也没有关系,但是我希望我的存储库真正只反映我们自己的代码。
如果有帮助的话,结构就像这样:
1234号提交之后的提交(更新的),不会触及在1234号提交中引入的错误文件中的任何一个
1234号提交 - 包含几个与我们代码库相关的文件,还合并了不相关存储库的整个历史记录
1234号提交之前的提交(时间上更早)现在是我们自己的提交和不相关存储库的提交的混合。
git cat-file 1234...
。 - Michał Górny