Instalei a versão mais recente do git (1.8.3) usando homebrew, mas quando digito
git --version
no meu terminal, ele imprime:
git version 1.7.10.2 (Apple Git-33)
O que devo fazer para substituir a versão antiga do git pela nova?
Instalei a versão mais recente do git (1.8.3) usando homebrew, mas quando digito
git --version
no meu terminal, ele imprime:
git version 1.7.10.2 (Apple Git-33)
O que devo fazer para substituir a versão antiga do git pela nova?
Respostas:
Obrigado a todos por respostas úteis. No meu caso adicionando
export PATH="/usr/local/bin:${PATH}"
em ~/.bash_profile
seguido por
source ~/.bash_profile
resolveu o problema para o meu usuário.
/usr/local/bin
acima /usr/bin
no /etc/paths
.
brew doctor
para diagnosticar o problema
/etc/paths
. Definindo apenas o "exportação" pode não ser suficiente, se /usr/bin
tem "precedência" sobre /usr/local/bin
(de cerveja) ...
Ok, estou pronto para levar a sério o scm.
$ git --version
git version 1.9.5 (Apple Git-50.3)
Não, não era isso que eu queria. Eu <3 homebrew, então:
$ brew install git
Tudo pronto?
$ git --version
git version 1.9.5 (Apple Git-50.3)
Doh! (coça a cabeça)
$ which git
/usr/bin/git
Ah, o git da Apple está em / usr / bin, então supera o do homebrew. O que fazer?
(A) Apenas renomeie o binário da Apple
(B) Que um gerenciado por homebrew tenha precedência:
[editar exportação PATH, por exemplo, em ~ / .zshrc (oh-my-zsh + iTerm2 FTW! / tangente)]
[especificamente: mova / usr / local / bin / git: antes de / usr / bin:]
... e / ou (por exemplo, para permitir de forma mais ampla que o homebrew trunfo a instalação do sistema e a precedência se aplique a todos os shells e usuários) também edite o arquivo / etc / caminhos, [movendo / usr / local / bin acima / usr / bin ]
Mas assumindo apenas a abordagem mais simples / menos invasiva:
$ sudo mv /usr/bin/git /usr/bin/git-apple
Funcionou?
$ which git
/usr/local/bin/git
Até aí tudo bem, agora é o momento da verdade:
$ git --version
git version 2.2.1
w00t! :) Hora de ler http://git-scm.com ! :)
which git
apontando /usr/local/bin/git
, isso não funcionou para mim. Para resolver isso, tive que desinstalar o aplicativo GitHub Mac.
sudo mv /usr/bin/git /usr/bin/git-apple mv: rename /usr/bin/git to /usr/bin/git-apple: Operation not permitted
Todos os truques mencionados aqui em várias respostas não são mais necessários no macOS Sierra & Mojave com o Homebrew mais recente. Esquecer export PATH="..."
e modificações para ~/.bash_profile
.
Você simplesmente faz
brew install git
e pronto.
Para confirmar, abra uma nova janela do terminal (!) E digite
git --version
brew link --overwrite git
trabalhou para mim
Depois de instalar o git mais recente via brew ( brew install git
), execute este procedimento (como sugerido por brew doctor
) se ele ainda não estiver lá:
echo "export PATH=/usr/local/bin:$PATH" >> ~/.bash_profile
Saia do Terminal e abra-o novamente (reinicie a sessão do bash). Você precisa fazer isso mesmo se seu PATH já estiver correto, pois o ZSH e o Bash armazenam em cache o conteúdo do PATH (consulte a documentação no comando interno hash
).
Isso deve consertar as coisas muito rápido.
Quando você digita
git --version
no Terminal.app ou console, seu comentário em outra pergunta indica que a versão retornada é o git em / usr / bin / git
Se você instalou o Xcode 4.5 (e mais recente) e digite
xcrun git --version
no Terminal.app ou console, a versão retornada é o git no pacote de aplicativos do Xcode.
Se você estiver usando o Homebrew para instalar e atualizar o git, a solução mais simples é
renomeie o local original renomeando-o usando mv. Por exemplo
sudo mv / usr / bin / git / usr / bin / git-ORIGINAL
crie um link flexível usando 'ln -s' para o binário git que você instalou com o Homebrew.
Observe que o MattDMo tem uma solução melhor nos comentários.
/usr/bin
, pois é possível que outros programas que você nem conhece dependem de caprichos associados a uma versão específica. A solução mais fácil, sem mover qualquer coisa, é para adicionar /usr/local/bin
à sua $PATH
variável de ambiente antes /usr/bin
- IIRC, homebrew instala/usr/local/bin
Eu tentei isso e funciona para mim.
brew link --overwrite git
Você precisa renomear o git original da apple /usr/bin/
para, por exemplo, git-org, já que /usr/bin
normalmente é anterior /usr/local/bin
ao diretório do caminho, onde está o material de preparação.
Assim:
cd /usr/bin
sudo mv git git-org
e não se esqueça de vincular o brew git
brew link git
Isso pressupõe que /usr/local/bin
esteja na sua $PATH
variável de ambiente. Se você ainda tiver problemas, tente executar
brew doctor
e corrija os problemas mencionados lá.
/usr/local/bin
(homebrew do diretório de instalação, IIRC) à $PATH
frente de /usr/bin
, em vez de perder tempo com renomeação e backup, etc.
Instale o git com o brew, execute-o.
brew link --force git
Feche e reabra o terminal para executar which git
.
brew link --overwrite git
funcionou
Se você estiver instalando o git diretamente do git-scm.com e quiser usar o último git baixado em vez da versão apple (antiga) do git.
/usr/local/bin/git
git --version
, se ele retornar a versão antiga da Apple do git, continue abaixocd ~
(mude o diretório para o seu diretório pessoal)vi .bashrc
i
(para inserir texto no editor vi)export PATH.......
, pressione enter na parte superior da exportação e digite o seguinte: export PATH=/usr/local/:$PATH
(Preste muita atenção com a PATH
variável, não estrague tudo, pois isso causará problemas ao seu sistema operacional) (esperamos que o novo git seja instalado /usr/local/git
):wq
(para salvar o .bashrc
arquivo)git --version
(você deve ver a nova versão)Depende de onde seu git vem. O Xcode traz uma versão, por exemplo, que talvez esteja aberta no seu caminho.
Talvez digitando
which git
mostrará onde está o antigo.
/usr/bin/git
...
Para atualizar qualquer coisa usando o Homebrew no OSX que envolva compilação usando o gcc, verifique se você tem as Ferramentas de Linha de Comando atualizadas do Xcode - sim, eu sei, é uma pena ter que esconder uma ferramenta em todo o sistema nas preferências de um aplicativo.
brew doctor
e corrigir todas as outras dificuldadesbrew upgrade
para atualizar todos os pacotes de uma só vez