`git filter-repo` 命令在 Windows 上不输出任何内容
Posted
技术标签:
【中文标题】`git filter-repo` 命令在 Windows 上不输出任何内容【英文标题】:`git filter-repo` commands output nothing on Windows 【发布时间】:2021-11-20 02:35:29 【问题描述】:我通过scoop
安装了git-filter-repo
,尝试了多个git filter-repo
命令,例如git filter-repo -h
,他们都记录了 nothing,没有警告或错误,只是 nothing。
试过重启,重新安装,在另一台Windows 10电脑上安装,都重现了。
git-filter-repo
:v2.33.0git
:v2.33.0.windows.2python
:v3.9.7scoop
:
Current Scoop version:
09200504 (HEAD -> master, origin/master, origin/HEAD) reset: skip when app instance is running (#4359)
'main' bucket:
b71f4a842 (HEAD -> master, origin/master, origin/HEAD) nunit-extension-vs-project-loader: Update to version 3.9.0
如何解决这个问题?
【问题讨论】:
使用命令git --exec-path
查看 Git exe 的安装位置。然后在该目录中查找名为git-filter-repo
的文件。我的是一个大小约为 160 KB 的 python 脚本。如果它在那里,打开该文件并查看第一行。如果列出了“python3”,请尝试将其更改为“python”(不带 3)。
@TTT git-filter-repo
在那个文件夹中不存在,终于找到线索了,谢谢,这是什么原因?
我猜 scoop 没有达到你的预期。 ;) 已经有一段时间了,但我很确定我刚刚从 GitHub 下载了 git-filter-repo,并将该文件放到了 Git 文件夹中,进行了一次更改以删除 3,并且它起作用了。 (假设你已经安装了 python,你已经安装了。)
@TTT 太棒了!我确实“从 GitHub 下载了 git-filter-repo,并将该文件放入 Git 文件夹中,进行了一项更改以删除 3”,它现在可以工作了!您可以为此发布答案,但我很好奇为什么 scoop
没有在 git-core
文件夹中生成 git-filter-repo
以及为什么将 python3
更改为 python
会使脚本工作?
【参考方案1】:
今年早些时候我在 Windows 上安装 git-filter-repo
时,以下步骤对我有用:
-
下载并安装Python for Windows。确认 python 已添加到您的路径中,并且您可以从 Git 命令行运行命令
python
或 python3
。 (我推荐 Git Bash。)就我而言,我的可执行文件名称是 python
。
克隆git-filter-repo
repo from GitHub。
运行命令git --exec-path
以查看您的Git exe 目录。
从git-filter-repo
repo 的根目录,将文件git-filter-repo
(约160KB)复制到您的Git exe 目录中。
在使用 Git 的命令行中,键入命令 git filter-repo
。如果有效,您应该会收到“未指定参数”消息。
如果您没有收到消息或类似“/usr/bin/env: 'python3': No such file or directory”的错误消息,请编辑您在步骤中复制到 Git exe 目录中的文件 git-filter-repo
#4,将第一行从“python3”改为“python”。
现在惊叹于git-filter-repo
的快速和真棒。
【讨论】:
问题是在第 6 步,没有记录任何消息,这是最难调试的情况。 @WenfangDu 但那只是你用scoop的时候吧?如果您手动执行第 4 步,我认为您不会在第 6 步中得到任何输出。 我认为根本原因是python3
本身没有记录任何内容,而scoop
在git-filter-repo.ps1
中使用了它,这反过来又导致运行git-filter-repo.ps1
没有记录任何内容。以上是关于`git filter-repo` 命令在 Windows 上不输出任何内容的主要内容,如果未能解决你的问题,请参考以下文章
git- win10 cmd git log 中文乱码(方框)