Windows系统下git-filter-repo安装与运行失败求助
Windows系统下git-filter-repo安装与运行失败求助
兄弟我之前在Windows上折腾git-filter-repo也踩过一模一样的坑!各种命令试了个遍都找不到,后来才发现是Windows的PATH和脚本执行逻辑和Linux不一样,给你捋捋最靠谱的解决办法:
先排查你大概率踩的几个坑
- 文件扩展名藏坑:Windows默认会隐藏已知文件扩展名,你之前复制的
git-filter-repo.py说不定实际是git-filter-repo.py.txt,Python当然找不到!先打开文件资源管理器的「查看」选项卡,勾选「文件扩展名」,确认你的脚本后缀确实是.py。 - PATH没生效:改完PATH后一定要重启终端(不管是CMD、PowerShell还是Git Bash),不然新的路径根本不会加载,白忙活!
- 命令调用错了:
git filter-repo这种写法是把它当成Git的内置子命令,但默认情况下Git根本不认识它,得直接调用Python脚本才行。
一步一步解决的具体操作
第一步:准备好正确的脚本文件
直接下载git-filter-repo的纯Python脚本(官方单文件版本),保存到一个固定的文件夹里,比如C:\dev-tools,文件名就叫git-filter-repo.py,务必确认后缀是.py。
第二步:配置系统PATH(让终端能找到脚本)
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」里找到「Path」,点击「编辑」
- 点击「新建」,把你放脚本的文件夹路径(比如
C:\dev-tools)加进去,然后一路点「确定」保存 - 重启你的终端!这步绝对不能省!
第三步:在你的Git仓库里运行脚本
- 如果用CMD/PowerShell:进入仓库目录后,直接运行
要是你的系统默认Python是3.x版本,就用python git-filter-repo.py [你的操作参数]python3代替python。 - 如果用Git Bash(推荐用这个,更贴近Linux环境):
方法一:把脚本复制到Git的usr/bin目录下(比如C:\Program Files\Git\usr\bin),然后在Git Bash里给脚本加执行权限:
之后就能直接在仓库里运行chmod +x /usr/bin/git-filter-repo.pygit-filter-repo.py [参数],嫌名字长的话还可以把脚本改名叫git-filter-repo,直接用git-filter-repo [参数]调用。
方法二:直接用绝对路径调用脚本,比如:
(Git Bash里用python /c/dev-tools/git-filter-repo.py [参数]/c代表Windows的C盘)
回头看你之前的操作,这几种组合其实应该能成
你之前把git-filter-repo.py放到PATH里,然后运行python git-filter-repo.py,大概率是没重启终端导致PATH没生效,或者脚本扩展名不对。
备注:内容来源于stack exchange,提问作者Pro Q




