`git filter-repo` commands output nothing on Windows

Question:

I installed git-filter-repo via scoop, tried multiple git filter-repo commands e.g. git filter-repo -h, they all logged nothing, no warning or error, just nothing.

Tried rebooting, reinstalling, and installing it on another Windows 10 computer, all reproduced it.

git-filter-repo: v2.33.0
git: v2.33.0.windows.2
python: v3.9.7
scoop:

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

How to solve this issue?

Asked By: Wenfang Du

||

Answers:

(Now updated for newer Python installers.)

When I installed git-filter-repo on Windows earlier this year, the following steps worked for me:

  1. Download and install Python for Windows. In newer installers you need to go into the Advanced Options to make sure Python is added to your Path: enter image description here

  2. Confirm python was added to your path and that you can run either the command python --version or python3 --version from your Git command line. (I recommend Git Bash.) In my case, my executable name is python and if yours is too, you will need this in step #7 below.

  3. Clone git-filter-repo from GitHub.

    git clone https://github.com/newren/git-filter-repo.git
    
  4. Run the command git --exec-path to see your Git exe directory.

  5. From the git-filter-repo repo’s root directory, copy the file git-filter-repo (about 160KB) into your Git exe directory.

  6. In your command line where you use Git, type the command git filter-repo. If it works, you should get the message "No arguments specified." and you can skip step #7. If it doesn’t work, it’s likely that your python exe is python instead of python3 as determined in step #2. Go to the next step.

  7. If you get no message or an error message similar to "/usr/bin/env: ‘python3’: No such file or directory", then edit the file git-filter-repo that you copied into your Git exe directory in step #5, and change the first line from "python3" to "python".

Now be amazed at how fast and awesome git-filter-repo is.

Still having problems? If you didn’t add the environment variable in step #1, some people have had luck in step #7 by changing their python command to just "py". This is the python launcher which can auto-detect the highest version installed on your machine. More info here. I should point out that this did not work for me with python 3.10.7. I actually tried this first but ended up re-installing and enabling the option to "Add python to environment variables" as described above in step #1.

Answered By: TTT

In my case I followed this answer for windows 11 and here is my experience.

  1. I installed python from the windows store or from this link https://www.python.org/downloads
    enter image description here

  2. I run pip3 install git-filter-repo or python3 -m pip install --user git-filter-repo only for current user.

I got this message:

Requirement already satisfied: git-filter-repo in c:usersusernameappdatalocalpackagespythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0localcachelocal-packagespython310site-packages

  1. Now copy that folder but replace site-packages with scripts.

Path: c:usersusernameappdatalocalpackagespythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0localcachelocal-packagespython310scripts

You will find git-filter-repo.exe inside the scripts folder.

  1. Run git --exec-path

You will get

C:/Program Files/Git/mingw64/libexec/git-core
  1. Copy git-filter-repo.exe to a folder in step 4 (C:/Program Files/Git/mingw64/libexec/git-core).

Now you should be able to run git filter-repo

Answered By: Maytham Fahmi