You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

git-filter-repo改写提交历史后丢失远程仓库的解决办法

解决Git远程仓库配置丢失的问题

问题原因

git filter-repo 工具默认会移除仓库的远程配置,这是为了防止改写提交历史后,误将修改后的历史推送到原远程仓库(改写后的历史与原远程仓库历史完全不兼容,强制推送会覆盖远程数据)。

解决方案

在执行 git filter-repo 时添加 --preserve-remotes 参数,即可保留原有的远程仓库配置。

修改脚本中对应的命令行:

git filter-repo --replace-message replacements.txt --force --preserve-remotes

备选方案:手动备份并恢复远程配置

如果担心参数不生效,也可以在执行脚本前手动备份远程配置,完成后再恢复:

  1. 备份远程配置到文件:
git remote -v > remote_backup.txt
  1. 执行完脚本中的 git filter-repo 命令后,恢复远程配置:
while read -r remote_name remote_url remote_type; do
  git remote add "$remote_name" "$remote_url"
done < remote_backup.txt
# 若远程已存在(比如filter-repo未完全删除),可改用以下命令更新地址
# while read -r remote_name remote_url remote_type; do
#   git remote set-url "$remote_name" "$remote_url"
# done < remote_backup.txt
rm remote_backup.txt

内容的提问来源于stack exchange,提问作者Norfeldt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 22:33:25