3 ms·
Git Bash is a nice tool. I used it for some time, and still do in some circumstances. But when I wanted to have more and do more from the command-line re: a *n
by michaelsbradley 5y ago
Git Bash is a nice tool. I used it for some time, and still do in some circumstances.
But when I wanted to have more and do more from the command-line re: a *nix-like dev experience on Windows for building native Windows software, I found my way to MSYS2[1]. Note that Git Bash is in parts based on MSYS2, but installing and using MSYS2 is not 1-1 with installing and using Git Bash:
At first I didn't quite understand what I was working with, but MSYS2's website provides the needed info, I just had to take the time to read it.
The History[2] page helped me understand better the relationships and differences between MSYS2, MSYS (not "2"), MinGW/-w64, and Cygwin. One of the more salient points being:
MSYS2 is an independent rewrite of MSYS, based on modern Cygwin and MinGW-w64 with the aim of better interoperability with native Windows software ... MSYS2 is ideologically a successor to MSYS and MinGW. MSYS -- although definitely useful -- is really old and getting in the way of developers. MSYS2 was created to replace the original MSYS while avoiding its problems.
Other pages provide complementary information on that same topic.
Another thing I appreciated was the explanation of MSYS2's environments[3]. Being able to painlessly switch away from MSVCRT to UCRT was helpful in solving some UTF-8 difficulties I was experiencing.
Package management with pacman[4] is rather pleasant, and the setup-msys2[5] GitHub Action makes it simple to provide your GHA workflow with the tools and libs you want.
Whenever I've encountered a problem or had a question I couldn't answer via web search, the community on the MSYS2 Discord server[6] has always been quick and happy to help.
[1] https://www.msys2.org/ https://www.msys2.org/
[2] https://www.msys2.org/wiki/History/ https://www.msys2.org/wiki/History/
[3] https://www.msys2.org/docs/environments/ https://www.msys2.org/docs/environments/
[4] https://www.msys2.org/docs/package-management/ https://www.msys2.org/docs/package-management/
[&] https://packages.msys2.org/queue https://packages.msys2.org/queue
[5] https://github.com/msys2/setup-msys2 https://github.com/msys2/setup-msys2
[6] https://www.msys2.org/contact/ https://www.msys2.org/contact/