SourceTree can't find Git for Windows 2.3.4 (x86 and x64)
Asked by tkaw220:

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?


Answers:
author: Christian Grasso
body: 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
```

comments: author: tkaw220
body: This work!! Thanks Christian Grasso.


author: Nick Longin
body: 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?


author: Christian Grasso
body: Probably a bug in SourceTree. It doesn't add quotes to the command so the prompt takes only the part before the space. Didn't test this, but a fix would be installing Git in a path without spaces, like C:\\Git


author: Nick Longin
body: 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...


author: Christian Grasso
body: Try adding \\usr\\bin to the PATH environment variable.


author: Nick Longin
body: Adding to PATH doesn't seem to make any difference unfortunately. However, I did find <https://jira.atlassian.com/browse/SRCTREEWIN-3174> which might be worth voting on...


author: Christian Grasso
body: 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.


author: Nick Longin
body: 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.


author: patsissons
body: 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 **$MSYS2_PATH** to **$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.

```
MSYS2_PATH="/usr/local/bin:/usr/bin:/bin:/cmd"
```

comments: author: Jonathan Vannoy
body: This worked for me.


author: Silviu Burcea
body: 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.

comments: author: Seth
body: Good resource. Also check your PATH to make sure your new Git version is there.


author: Yiyang Fei
body: I ran into this issue with SourceTree v3.2.6 and Git v2.24.0.2. 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.


author: Nick Longin
body: 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 v2.4.4.2 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.


author: Pierre Garcia
body: Thanks a lot, that link is not even on the first page of google search, it deserves more visibility! Try searching "git for windows" (without quotes), nothing... Cheers, PP.S.: SourceTree's internal link ("update embedded git") also points to version 1.9.5.


author: Nick Longin
body: @Pierre Garcia <http://git-for-windows.github.io>


author: Pierre Garcia
body: 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


author: tkaw220
body: It is configured to use System Git.


author: Seth
body: Ok, but that doesn't answer my question. "No" isn't a valid answer to "Embedded or System?" SourceTree only has those two options.


author: tkaw220
body: No. I uninstalled the old 1.9.5, and then install 2.3.4. Upon starting SourceTree, it said it can't find Git.


author: Seth
body: Is SourceTree configured to use Embedded Git or System Git?


Tags: windows