Skip to content

Instantly share code, notes, and snippets.

@hisplan
Created February 21, 2018 09:02
Show Gist options
  • Save hisplan/ee54e48f17b92c6609ac16f83073dde6 to your computer and use it in GitHub Desktop.
Save hisplan/ee54e48f17b92c6609ac16f83073dde6 to your computer and use it in GitHub Desktop.
Add rsync to git bash for windows
@LwServices
Copy link

for me worked C:\Program Files\Git\cmd\

@mattirish
Copy link

Worked great using @Jolastar's comment for the installation directory. Thanks, every1!

For me the location which worked was C:\Program Files\Git\usr\bin i.e. more generally %ProgramFiles%\Git\usr\bin as mentioned here and here for example.

@charlie-cadmv
Copy link

Git Bash's root directory maps to the root of your Git SCM installation which may be in %programFiles% or it may not.
You can run cygpath -w / to get Git Bash to tell you where it's running from.
Even if you're running PortableGit like I am, it will print out the Windows equivalent path of Git's root, which is the directory where you should be extracting the .tar.xz file using the tar -xf command.
But why bother with the Windows path at all?
You can do everything from within Git Bash!

#Make a temporary directory
tempDir=$(mktemp -d)
#go into that dir
pushd "$tempDir"
#download the file using its original name
curl -O http://www2.futureware.at/~nickoe/msys2-mirror/msys/x86_64/rsync-3.1.2-2-x86_64.pkg.tar.xz
#cd to Git Bash root directory (which is your Git directory, so you don't need to look it up or assume it's in %programfiles%)
cd /
#extract the files to their proper places (all of them, not just rsync.exe)
tar -xf "${tempDir}/rsync-3.1.2-2-x86_64.pkg.tar.xz"
#get back to your original directory
popd
#clean up that temp directory and the downloaded .tar.xz file
rm -rf "$tempDir"
#see that rsync is in the path now
which rsync

@ahmednrana
Copy link

Life saver

@llraj
Copy link

llraj commented Oct 21, 2020

@hisplan Thank you very much!

@LeonT-A
Copy link

LeonT-A commented Nov 11, 2020

Thanks @charlie-cadmv, your solution worked great!

I was extracting the .xz manually, but simply dropping the .exe to the right folder wasn't working. I was getting errors about missing .dll files.

Using the tar command everything is working great. My guess is that the tar command is smart enough to know where to put each file it extracts, even though I didn't find any .dll files inside the .xz (Maybe they were hidden deep?).

I really gotta learn the difference and how to work with all these funky file source files.

P.S
Link is dead, but you can find the .xz file here: http://www2.futureware.at/~nickoe/msys2-mirror/msys/i686/

@fotcorn
Copy link

fotcorn commented Jan 7, 2021

Link no longer works, just search for "rsync" in the official msys2 repo instead: http://repo.msys2.org/msys/x86_64/
The newest version requires two additional packages to make it work: libxxhash and liblz4.
The packages are now compressed with zstd, unpack them inside git bash with zstd -d <package> or use 7zip with ZStandard support: https://github.com/mcmilk/7-Zip-zstd/releases

@ctrongminh
Copy link

ctrongminh commented Jan 24, 2021

Link no longer works, just search for "rsync" in the official msys2 repo instead: http://repo.msys2.org/msys/x86_64/
The newest version requires two additional packages to make it work: libxxhash and liblz4.
The packages are now compressed with zstd, unpack them inside git bash with zstd -d <package> or use 7zip with ZStandard support: https://github.com/mcmilk/7-Zip-zstd/releases

Thank you @fotcorn for your note,
For my case I also need to download the http://repo.msys2.org/msys/x86_64/libzstd-1.4.8-1-x86_64.pkg.tar.zst.
So total of four packages

  1. rsync: http://repo.msys2.org/msys/x86_64/rsync-3.2.3-1-x86_64.pkg.tar.zst
  2. libxxhash: http://repo.msys2.org/msys/x86_64/libxxhash-0.8.0-1-x86_64.pkg.tar.zst
  3. liblzr: http://repo.msys2.org/msys/x86_64/liblz4-1.9.3-1-x86_64.pkg.tar.zst
  4. libzstd: http://repo.msys2.org/msys/x86_64/libzstd-1.4.8-1-x86_64.pkg.tar.zst

Copy four libs to the same folder, then use https://github.com/mcmilk/7-Zip-zstd/releases, to extract all of them. After that, copy folder "usr" to "C:\Program Files\Git".
And it works

@timmy-ly
Copy link

timmy-ly commented May 10, 2021

Then use https://github.com/mcmilk/7-Zip-zstd/releases, to extract all of them (extract 4 libs to folder "usr"). Then copy folder "usr" to "C:\Program Files\Git".
And it works

The "(extract 4 libs to folder "usr")" part confused me. Each of these packages contains their own /usr/ directory tree (in particular /usr/lib, /usr/bin). Just extract all these /usr/* to a new "usr" folder and then copy it to "C:\Program Files\Git". It works, thank you!

@ctrongminh
Copy link

Then use https://github.com/mcmilk/7-Zip-zstd/releases, to extract all of them (extract 4 libs to folder "usr"). Then copy folder "usr" to "C:\Program Files\Git".
And it works

The "(extract 4 libs to folder "usr")" part confused me. Each of these packages contains their own /usr/ directory tree (in particular /usr/lib, /usr/bin). Just extract all these /usr/* to a new "usr" folder and then copy it to "C:\Program Files\Git". It works, thank you!

Thanks @timmy-ly,
I edited the it a bit. Copy four libs to the same folder, and extract them all, then copy the "usr" folder to "C:\Program Files\Git".

@rolfschumacher
Copy link

rolfschumacher commented May 31, 2021

Where can I find the public key for checking downloads from http://www2.futureware.at/~nickoe/msys2-mirror/msys/x86_64/ ??

I found the fingerprint 81B3DB3F32C8A69E80C12875124374AB5E5E584A at the account of Nick Østergaard on lauchpad.net - but it seems to be expired.

@rkhyd
Copy link

rkhyd commented Jul 22, 2021

The link has expired.

@oakgary
Copy link

oakgary commented Jul 22, 2021

The link has expired.

A quick google search brings up these sites:

The process should be the same. Download, extract and put the .exe into a directory that is part of your PATH.
Please note that I did not verify above downloads. Use them at your own risk.

@terwer
Copy link

terwer commented Apr 14, 2022

Link no longer works, just search for "rsync" in the official msys2 repo instead: http://repo.msys2.org/msys/x86_64/
The newest version requires two additional packages to make it work: libxxhash and liblz4.
The packages are now compressed with zstd, unpack them inside git bash with zstd -d <package> or use 7zip with ZStandard support: https://github.com/mcmilk/7-Zip-zstd/releases

Thank you @fotcorn for your note, For my case I also need to download the http://repo.msys2.org/msys/x86_64/libzstd-1.4.8-1-x86_64.pkg.tar.zst. So total of four packages

  1. rsync: http://repo.msys2.org/msys/x86_64/rsync-3.2.3-1-x86_64.pkg.tar.zst
  2. libxxhash: http://repo.msys2.org/msys/x86_64/libxxhash-0.8.0-1-x86_64.pkg.tar.zst
  3. liblzr: http://repo.msys2.org/msys/x86_64/liblz4-1.9.3-1-x86_64.pkg.tar.zst
  4. libzstd: http://repo.msys2.org/msys/x86_64/libzstd-1.4.8-1-x86_64.pkg.tar.zst

Copy four libs to the same folder, then use https://github.com/mcmilk/7-Zip-zstd/releases, to extract all of them. After that, copy folder "usr" to "C:\Program Files\Git". And it works

thanks for your good works,it worked!

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