chiikawa&q 2024-09-02 11:28 采纳率: 93.3%
浏览 0
已结题

当你需要重写历史以移除或修改特定文件的所有提交记录时,如果你要修改的是多个分支的历史而不仅仅是当前分支(标签-Git)

在 Git 中,当我需要重写历史以移除或修改特定文件的所有提交记录时,如果我要修改的是多个分支的历史而不仅仅是当前分支,该如何操作?

  • 写回答

1条回答 默认 最新

  • 小ᶻ☡꙳ᵃⁱᵍᶜ꙳ 优质创作者: 人工智能技术领域 2024-09-02 11:31
    关注

    该回答引用自GPT-4o由博主小ᶻZ࿆编写:

    要重写多个分支的历史,可以使用 git filter-repo 命令,并指定多个分支:

    1. 指定多个分支进行过滤:
      git filter-repo --path sensitive-file.txt --invert-paths --refs refs/heads/branch1 refs/heads/branch2
      
    2. 这会移除 sensitive-file.txt 在 branch1 和 branch2 上的所有历史记录。
      确保将更改强制推送到远程仓库:
      git push origin branch1 --force
      git push origin branch2 --force
      
      这种方法会重写指定分支的历史,删除目标文件的所有记录。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月2日
  • 已采纳回答 9月2日
  • 修改了问题 9月2日
  • 创建了问题 9月2日