我已经检查了一个非常旧的功能分支,并且想对 master 进行变基。
但是,有一些 webpack 构建文件未包含在 .gitignore 中,这会导致 rebase 提示我解决这些 webpack 构建文件的功能分支的每次提交的冲突。
我的问题是,有没有办法忽略这些 webpack 构建文件冲突?
正确的方法(当然更痛苦)是重写历史记录,这样就没有提交的构建文件。
考虑到分支的历史无论如何都会被重写,一旦基于 master 之上重新构建,首先过滤其内容是一个可行的选择。
git filter-repo
,替换 BFG
和 git filter-branch
。注意:先安装。
在继续之前,请确保您拥有存储库的完整备份。
使用
git filter-repo
从分支历史记录中删除 webpack 构建文件。将 path/to/webpack/build/files/*
替换为 webpack 构建文件的实际路径。
git filter-repo --path path/to/webpack/build/files/* --invert-paths
运行命令后,检查存储库的历史记录以确保文件已被删除。
如果您已经将带有构建文件的分支推送到远程存储库,则需要强制推送更改。与可能使用同一分支的任何其他人进行协调(但是,由于它是一个非常旧的分支,因此很可能目前没有人在使用它)。
git push origin <branch-name> --force
现在构建文件已从历史记录中删除,您可以继续重新建立 master 基础:
git rebase master