Git for Windows has recently updated to version 2.3.4. SourceTree couldn't find the newly installed Git for Windows 2.3.4 (both 32-bit and 64-bit). Any workaround?
A temporary fix for this is to create a symlink named "bin" in the Git directory that points to the cmd directory, where the Git executable is located in Git for Windows.
Open a command prompt (shift+right click, then Open command prompt here) in C:\Program Files\Git, and type this:
mklink /D bin cmd
This allowed me back into SourceTree but the Terminal button no longer functions. It just momentarily flashes up a command prompt containing the error "'C:\Program' is not recognized as an internal or external command, operable program or batch file." Any idea how to fix the Terminal button as well?
Hmm, I was hopeful for a moment but that just produces a similar error saying "C:\Git\bin\sh.exe" is not recognized. sh.exe now seems to be in \usr\bin rather than \bin and since we're already symlinking \bin to \cmd we can't also symlink to \usr\bin. I tried copying everything from \usr\bin to \cmd which gets past the new error, but after that sh.exe just crashes and creates an "sh.exe.stackdump" file inside my repo. It's probably a SourceTree bug like you say, but it doesn't look like there's an easy workaround...
Another thing you might want to try is choosing "Use Git from the Windows Command Prompt" in the Git for Windows installer. That might make sh.exe available from cmd (can't test right now). By the way I upvoted that issue, but I think Atlassian will wait for a stable Git for Windows release.
I actually already installed Git that way. It doesn't seem to help with the problem directly, but it does mean you can uncheck "Use Git Bash as default terminal" in SourceTree's options. That way the Terminal button will just fire up cmd in the correct repo and Git commands will still be available without Git Bash. Might have to make do with that for the time being, or just start Git Bash via the context menu in Windows Explorer.
The problem here is that the built-in bash profile (found at
C:\Program Files\Git\etc\profile) expects a
$MSYSTEM variable to be set to properly setup the
$PATH variable. The default is to simply prepend the
$PATH. The problem is that this results in
/bin lacking the
git.exe executable. The best way to solve this is to edit
C:\Program Files\Git\etc\profile and modify
$MSYS2_PATH by appending
:/cmd to the end. This will allow both
git-bash.exe and the sourcetree terminal to load the correct environment.
Have you checked this page: https://confluence.atlassian.com/pages/viewpage.action?pageId=695108075 ? Check the git executable path when you're prompted. Another possible cause could be that Source Tree doesn't work with Git 2.x, but I don't know for sure about this one.
I ran into this issue with SourceTree v3.2.6 and Git v220.127.116.11. I used default settings when installing both applications. Upon launching SourceTree, I was stuck in the popup window that says SourceTree can't find Git. In my case, launching SourceTree with admin privileges "fixed" the problem, but I have no idea why. Hopefully this note will help someone else.
The latest release candidate of Git for Windows has resolved this problem by adding some redirect executables to the /bin directory where SourceTree looks for Git. You need v18.104.22.168 RC3 or newer from https://github.com/git-for-windows/git/releases.
I believe Atlassian also have a fix in beta so that SourceTree looks in the proper /cmd directory.
May I ask what you are refering to when you say "Git for Windows has recently updated to version 2.3.4"? At the moment the latest build I could find for windows was 1.9.5 and I'm quite interested to get a better version. Should I compile it myself? I'm not sure how to it properly... Thanks