已被多次询问的问题的变体,但我无法确定适合我的情况的答案。
简而言之,我想在没有特定提交的情况下对存储库进行变基,并以最小的努力保留已经完成的合并冲突,并具有更长的历史记录。
为什么这个问题不是简单的重复免责声明:
我知道有
git rebase -i
还不够:应保留合并及其处理方式,以保持非线性历史记录。
git-filter-repo
和
git rm --cached
与 rebase
或
reset
配对太简单,不是所需要的,git 历史记录并不简单。涉及的单个文件应该会让这个过程变得
更容易,但不会让它变得微不足道。
,之后再也不会被触及。
git rebase -i master --rebase-merges
并执行 然而,这迫使我们再次处理过去解决过的所有合并冲突
。如何避免这种情况,即如果存储库没有我们想要删除的提交,我们如何制作副本?保留要删除的文件列表......以便您可以随时执行类似
git rm --cached the-list-of-doomed-files
的操作。你可以做一个git 删除这些文件
,而不需要额外的更改,然后每次发现冲突时都可以安全地运行它:
git checkout REBASE_HEAD -- .
git rm --cached the-list-of-dommed-files
GIT_EDITOR=/usr/bin/true git rebase --continue
这应该有效,至少在纸面上是这样。