Skip to content

Instantly share code, notes, and snippets.

@radleta
Last active February 15, 2025 22:16
Show Gist options
  • Save radleta/0b337a2b14f761951cf2aab0578512b9 to your computer and use it in GitHub Desktop.
Save radleta/0b337a2b14f761951cf2aab0578512b9 to your computer and use it in GitHub Desktop.
Step-by-step how to use rsync with git bash from Windows command prompt

Note: This works all except for the shell script part. Need to figure that out. You can do it interactively just not from the command prompt.

  1. Install Git
  2. Install Git Bash via Git Tortoise install
  3. Added HOME=/c/Users/$USERNAME to C:\Program Files\Git\etc\profile
  4. See https://stackoverflow.com/questions/32232978/change-the-location-of-the-directory-in-a-windows-install-of-git-bash
  5. Download rsync.exe from https://repo.msys2.org/msys/x86_64/rsync-3.2.3-2-x86_64.pkg.tar.zst use 7-zip to decompress
  6. See https://blog.tiger-workshop.com/add-rsync-to-git-bash-for-windows/
  7. Put rsync.exe into C:\Program Files\Git\usr\bin
  8. Open Git Bash and create a key file using ssh-keygen
  9. Create a shell script that copies the files
  10. Example test.sh
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
rsync -avz Pictures/ root@targetmachine:/data/pictures/
  1. Run the shell script from the command line
    1. "c:\Program Files\git\bin\sh.exe" -c "sh test.sh"
@pklapperich
Copy link

pklapperich commented Dec 11, 2024

We did this winget install zstd, then:

mkdir -p ~/.bin
cd ~/.bin
curl   https://repo.msys2.org/msys/x86_64/rsync-3.3.0-1-x86_64.pkg.tar.zst | tar --zstd -xf - 'usr/bin/rsync.exe' -O > rsync.exe
curl  https://repo.msys2.org/msys/x86_64/libxxhash-0.8.1-1-x86_64.pkg.tar.zst| tar --zstd -xf - 'usr/bin/msys-xxhash-0.dll' -O > msys-xxhash-0.dll
echo 'export PATH=$PATH:~/.bin' >> ~/.bashrc

And then start a new shell or source your bashrc and it should work.

@bcouetil
Copy link

I started reading here for my quest of having rsync working on Git Bash; but it seemed complicated, so I went elsewhere.

I ended up downloading cwRsync client, unzipping, putting the bin folder in Windows system-wide variables, and voilà !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment