gpt4 book ai didi

git filter-branch 只改变受影响的提交

转载 作者:太空狗 更新时间:2023-10-29 13:53:53 25 4
gpt4 key购买 nike

20 次提交前,我的 git 存储库中添加了一个大型二进制文件。删除它:

git filter-branch --index-filter "git rm --cached --ignore-unmatch FILE" \
--prune-empty HEAD

为我的项目历史中的每个提交 (~1100) 更改 SHA1。它确实删除了文件,但我希望只有 git push -f 少量修改后的提交。有没有办法告诉 filter-branch 只修改带有 FILE 和后代注释的提交,在我的例子中大约有 20 个提交?

最佳答案

如果您知道引入该文件的提交,最简单的方法是指定 $SHA^..HEAD(其中 $SHA 是引入它的提交)。这将阻止它查看旧的提交。

如果引入此文件的提交引入了它,仅此而已,并且此后没有其他提交触及它,那么您可以在没有过滤器分支的情况下更简单地摆脱它,通过使用 git rebase --onto $SHA^ $SHA(其中 $SHA 是引入此文件的提交)。这只会从历史记录中删除提交 $SHA

关于git filter-branch 只改变受影响的提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10840191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com