A opção "Usar ferramentas Git e Unix opcionais no prompt de comando do Windows" é perigosa?

11

Ao instalar o Git, ele oferece a opção de adicionar todas as suas ferramentas msys * nix ao PATH, no entanto, alerta:

Aviso: Isso substituirá as ferramentas do Windows, como "localizar" e "classificar". Use esta opção somente se você entender as implicações.

Minhas perguntas são:

  • Com quais ferramentas exatamente ele entrará em conflito?
  • Isso importa? Eles são comumente usados ​​pelo sistema? (Eu nunca os usei pessoalmente.)
  • Posso apenas alterar a ordem dos diretórios no PATH para evitar conflitos?
  • É isso que a segunda opção faz? ("Use o Git no prompt de comando do Windows - esta opção é considerada segura, pois adiciona apenas alguns pacotes mínimos do Git")
Aleksandr Dubinsky
fonte

Respostas:

4

Concordo com a análise geral das outras respostas e também sou incapaz de prever exatamente em que tipo de conflito você pode se deparar. Sei que não notei nada errado ao fazer a terceira opção. Mas posso acrescentar um pouco ao que as opções realmente fazem a partir de 2018.

Eu experimentei uma variedade de configurações de instalação enquanto decidia como sugerir a transição da minha equipe para o git, incluindo essas opções. Isso é o que eu realmente observei a instalação fazendo no meu caminho, a partir do git para Windows v2.19.1.

captura de tela das opções de instalação do Git For Windows para definir o PATH

Use apenas o Git do Git Bash

Como afirma, nenhuma modificação é feita no caminho do seu sistema. Digitar um simples git statusno prompt de comando do Windows, cmd.exe, falhará com 'git' is not recognized as an internal or external command, operable program or batch file.

Use Git no prompt de comando do Windows

Posso apenas alterar a ordem dos diretórios no PATH para evitar conflitos?

É isso que a segunda opção faz? ("Use o Git no prompt de comando do Windows - esta opção é considerada segura, pois adiciona apenas alguns pacotes mínimos do Git")

Alterar a ordem é sempre uma opção para você, mas não, a segunda opção parece não ter nada a ver com a solicitação. (As adições de caminho parecem ir até o final do caminho, independentemente. Suspeito que isso tenha mudado em algum momento.) É uma questão de quais diretórios foram adicionados ao caminho e é diferente entre a segunda e a terceira opção.

Quando diz que adicionará wrappers Git "mínimos" ao PATH, o que parece realmente fazer é adicionar a cmdpasta da instalação (futura) ao caminho. Essa é a opção que eu sugeri à minha equipe. Agora temos C:\Program Files\Git\cmdem nossos caminhos.

O que há no cmddiretório? Para mim, apenas seis arquivos:

  • git.exe
  • git-gui.exe
  • gitk.exe
  • git-lfs.exe
  • start-ssh-agent.cmd
  • start-ssh-pageant.cmd

Como na resposta de Anaksunaman, não tenho certeza de quando isso não seria suficiente. Qualquer um dos comandos normais git <some command>funcionaria com a inclusão do git.exe.

Use Git e ferramentas Unix opcionais no prompt de comando do Windows

Isso inclui a segunda opção de adicionar <Install dir>\Git\cmdao caminho e também adiciona <Install dir>\Git\mingw64\bine <Install dir>\Git\usr\binao caminho. Ambos os diretórios têm um número significativo de executáveis, incluindo localizar, classificar e matar, conforme mencionado em outras respostas.

Em vez de listar o que provavelmente tem algumas centenas de itens, eu incentivaria o usuário em questão a escolher a opção dois, concluir a instalação e dar uma olhada nesses diretórios. Se você estiver satisfeito com o risco, adicionar <Install dir>\Git\mingw64\bine <Install dir>\Git\usr\binseguir seu caminho seria equivalente a recuperar uma máquina do tempo e selecionar a terceira opção.

ojchase
fonte
Desde pressupostos e contextos mudam ao longo dos anos, pode ser útil para iniciar uma nova resposta para uma pergunta de quatro anos de idade, com "Aqui está uma nova perspectiva a partir de 2019 ..."
Christopher Hostage
1
Essa ainda é a pergunta mais útil sobre o assunto, por isso acho relevante receber respostas adicionais. Eu adicionei um ano, embora eu pensasse que o número da versão teria o mesmo objetivo.
ojchase 19/04/19
7

Com quais ferramentas exatamente ele entrará em conflito?

Pessoalmente, não tenho certeza de uma lista completa, mas esta pergunta do StackOverflow diz

"Isso inclui encontrar, matar e classificar [...] o problema com os 3 primeiros (e similares) é que eles existem nos dois sistemas operacionais e funcionam de maneira diferente em cada um".

Eles podem não ser usados ​​com frequência por você, mas são comuns o suficiente para que o Git sinta a necessidade de avisá-lo sobre comportamentos inesperados.

Curiosamente, é mais provável que apareçam em programas de terceiros (principalmente scripts); portanto, o nível de efeito provavelmente depende de quanto você usa programas que dependem de qualquer um desses comandos.

É isso que a segunda opção faz? ("Use o Git no prompt de comando do Windows - esta opção é considerada segura, pois adiciona apenas alguns pacotes mínimos do Git")

Basicamente, ele permite que você use o Git na linha de comando (cmd.exe) com todos os comandos comuns do Git. Essa opção é perfeitamente segura e útil para 99% do que você provavelmente desejaria criar scripts ou implementar manualmente a partir de uma linha de comando do Windows. Eu uso essa opção e nunca encontrei nenhum problema pessoalmente.

Após a instalação, você também pode querer olhar para uma interface gráfica do git (como o GitHub Dekstop para Windows ou o SourceTree ) e não se esqueça que o Git bash também vem com a instalação.

Anaksunaman
fonte
Na verdade, eu gostaria de usar algumas das ferramentas do CMD e me perguntei se a segunda opção disponibiliza alguma das ferramentas unix ou apenas o git.
Aleksandr Dubinsky
Que eu saiba, é apenas git.
Anaksunaman 28/10/2015
3

Com quais ferramentas exatamente ele entrará em conflito?

Gostaria que a instalação modificasse seu PATH. É fácil removê-lo do PATH, se você não quiser. Então eu olhava os diretórios e fazia algumas comparações como diff, comm, etc. para descobrir os conflitos. Eles devem estar documentados em algum lugar, embora eu não saiba onde.

Isso importa? Eles são comumente usados ​​pelo sistema? (Eu nunca os usei pessoalmente.)

Não usei as ferramentas cygwin recentemente, mas quando tive que usar o Windows, geralmente tive o diretório de ferramentas cygwin primeiro no meu PATH sem problemas.

O maior risco seria que, se um programa estivesse procurando pelas ferramentas conflitantes da linha de comando do Windows, ele executaria o programa incorreto. Eu acho que as chances disso são muito pequenas, considerando a quantidade extremamente pequena de scripts cmd.exe que ocorre.

Posso apenas alterar a ordem dos diretórios no PATH para evitar conflitos?

Sim. Apenas mova o cygwin, ou o que for gitadicionado, até o final do CAMINHO. Lembre-se de que certas seqüências de comandos não funcionarão corretamente no cygwin. Além disso, pensando bem, acho que o console do cygwin configura o caminho corretamente. Configurar o seu próprio caminho ao usar o cygwin também faria o cygwin funcionar corretamente.

É isso que a segunda opção faz? ("Use o Git no prompt de comando do Windows - esta opção é considerada segura, pois adiciona apenas alguns pacotes mínimos do Git")

Soa como se isso inserisse no PATH um diretório contendo apenas os comandos git que você precisa para usar o git.

RobertL
fonte
Na verdade, o git usa o MSYS em vez do Cygwin. A diferença é que o msys é o win32 nativo, enquanto o cygwin usa uma biblioteca de emulação para adaptar o código posix.
Aleksandr Dubinsky