我想使用git filter-repo
自动地为我的多重提交拉取请求应用一些脚本化的样式指南重构。
因此,我只想对最近推送的几个新提交应用这些操作,而不想触及更早历史中的任何其他提交。
有办法吗?
为了具体起见,这里有一个测试repo:https://github.com/cirosantilli/test-git-filter-repository和样本斑点操作:
# Install git filter-repo.
# https://superuser.com/questions/1563034/how-do-you-install-git-filter-repo/1589985#1589985
python3 -m pip install --user git-filter-repo
# Usage.
git clone https://github.com/cirosantilli/test-git-filter-repository
cd test-git-filter-repository
printf 'd1==>asdf
d2==>qwer
' > replace.txt
git filter-repo --replace-text replace.txt --refs HEAD
based on:如何替换整个Git历史中的字符串?
上面的方法会影响测试报告的所有3次提交。例如,有没有办法只影响最后2次提交?
blob操作应该非常适合我的用例,因为我只想接触我的提交修改过的blob。
我在文档中找不到。
我还在他们的问题追踪器上问:https://github.com/newren/git-filter-repo/issues/157
在git过滤器存储库ac039ecc095d上进行测试。
1条答案
按热度按时间erhoui1w1#
尝试指定一个提交范围作为
--refs
参数:在文档(链接)中,我没有找到明确声明提交范围是
--refs <refs+>
的有效值,但是代码说它直接传递给
git fast-export
,所以它们在实践中是这样的。