Is the option "Use Git and optional Unix tools from the Windows Command Prompt" dangerous?
Which tools exactly will it conflict with?
Personally I am unsure of a full list, but this StackOverflow question says
"This includes find, kill and sort [...] The problem with the first 3 (and similar) is that they exist in both OSs and function differently in each."
They may not be used often by you but are common enough that Git feels the need to warn you about unexpected behavior.
Anecdotally, they are more likely to appear in third party programs (mostly scripts), so the level of effect most likely depends on how much you use programs that rely on any of those commands.
Is this what the 2nd option does? ("Use Git from the Windows Command Prompt -- This option is considered safe as it only adds some minimal Git wrappers")
Basically it allow you to use Git from the command line (cmd.exe) with all the common Git commands. This option is perfectly safe and useful for 99% of what you would likely want to script or manually implement from a Windows command line. I use this option and have never personally encountered any issues.
After you install, you may also want to look at a graphical git interface (such as GitHub Dekstop for Windows or SourceTree) and don't forget that Git bash comes with the installation as well.
I agree with the other answers' general analysis and am also unable to predict exactly what kind of conflicts you could run into. I know I haven't noticed anything awry myself taking the third option. But I can add a little to what the options actually do as of 2018.
I experimented with a variety of installation configurations while deciding how to suggest my team transition to git, including these options. This is what I actually observed the installation doing to my path, as of git for Windows v2.19.1.
Use Git from Git Bash only
As it states, no modifications are made to your system's path. Entering a simple git status
on the Windows command prompt, cmd.exe, will fail with 'git' is not recognized as an internal or external command, operable program or batch file
.
Use Git from the Windows Command Prompt
Can I just change the order of the directories in the PATH to prevent conflicts?
Is this what the 2nd option does? ("Use Git from the Windows Command Prompt -- This option is considered safe as it only adds some minimal Git wrappers")
Changing the order is always an option for you, but no, the second choice appears to have nothing to do with ordering. (Path additions seem to go to the end of the path regardless. I'm a little suspicious this changed at some point.) It's a question of which directories are added to the path, and is different between the second and third options.
When it says it will add "minimal" Git wrappers to your PATH, what it appears to actually do is add the cmd
folder of the (coming) installation to the path. This is the option I eventually suggested to my team. We now have C:\Program Files\Git\cmd
on our paths.
What's in the cmd
directory? For me, only six files:
- git.exe
- git-gui.exe
- gitk.exe
- git-lfs.exe
- start-ssh-agent.cmd
- start-ssh-pageant.cmd
As with Anaksunaman's answer, I'm not sure when this would not be enough. Any of the normal commands starting with git <some command>
would work from the inclusion of git.exe.
Use Git and optional Unix tools from the Windows Command Prompt
This includes the second option's adding <Install dir>\Git\cmd
to the path, and also adds <Install dir>\Git\mingw64\bin
and <Install dir>\Git\usr\bin
to the path. Both directories have a significant number of executables, including find, sort, and kill as mentioned in other answers.
Rather than listing what's probably a couple hundred items, I'd encourage the concerned user to take option two, complete the installation, and go take a look at those directories. If you're satisfied with the risk, adding <Install dir>\Git\mingw64\bin
and <Install dir>\Git\usr\bin
to your path yourself would be equivalent to taking a time machine back and selecting the third option.
Which tools exactly will it conflict with?
I would let the install modify your PATH. It's easy to remove it from the PATH if you don't want it. Then I would look at the directories and do some comparisons like diff, comm, etc. to find out the conflicts. They should be documented somewhere though I don't know where.
Does it matter? Are they commonly used by the system? (I've never used them personally.)
I haven't used the cygwin tools lately, but when I had to use Windows, I commonly had the cygwin tools directory first in my PATH without problems.
The biggest risk would be if a program was looking for the conflicting Windows command line tools, it would execute the incorrect program. I think the chances of this are very slim, considering the extremely small amount of cmd.exe scripting that goes on.
Can I just change the order of the directories in the PATH to prevent conflicts?
Yes. Just move the cygwin, or whatever git
adds, to the end of the PATH. Just remember that certain command sequences won't work correctly in cygwin. Also, come to think of it, I think the cygwin console sets up the path correctly. Setting up your own path when you use cygwin would then make cygwin operate correctly also.
Is this what the 2nd option does? ("Use Git from the Windows Command Prompt -- This option is considered safe as it only adds some minimal Git wrappers")
It sounds as if this would insert to the PATH a directory containing only the git commands that you need to use git.