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

如何使用Git LFS并重写Git仓库历史记录

解决方案

1. 撤销已做的临时变更

你之前提交的git lfs track *.bin变更可以先撤销,回到干净状态:

  • 若还在该临时分支且未合并到master,执行:
    git reset --hard HEAD~1
    git lfs uninstall
    

2. 使用Git LFS Migrate重写历史

Git LFS的migrate命令是官方推荐的历史迁移工具,能自动把指定文件转为LFS追踪,并在历史中添加对应的.gitattributes配置。

迁移master分支

执行以下命令,会遍历master分支所有历史提交,将所有.bin文件替换为LFS指针,同时在第一个出现.bin文件的提交前,自动添加包含LFS追踪规则的.gitattributes文件:

git lfs migrate import --include="*.bin" --branch=master

迁移其他分支(可选)

如果需要迁移其他分支,直接指定分支名即可(多分支用逗号分隔):

git lfs migrate import --include="*.bin" --branch=dev,feature-test

3. 验证迁移效果

  • 查看最早包含.bin文件的提交,确认已自动添加.gitattributes
  • 执行git lfs ls-files,检查所有历史中的.bin文件都已被LFS追踪
  • 用git log --oneline确认提交结构和原历史一致,仅.bin文件存储方式变更

4. 强制推送到远程仓库

由于重写了历史,推送时需要强制覆盖远程分支:

git push --force origin master

其他分支同理:

git push --force origin dev feature-test

注意事项

  • 通知团队成员历史已被重写,他们需要重新克隆仓库,或执行git fetch && git reset --hard origin/<分支名>同步
  • 迁移出错时,可通过git reflog找到迁移前的提交哈希,执行git reset --hard <提交哈希>回退

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 11:27:15