Você tem algumas boas respostas - então eu queria comentar sobre a pergunta. Você está procurando instruções explícitas para instalar o git a partir da fonte do homebrew ou de um cliente da GUI ou apenas a confirmação de que o OS X agrupa várias versões do git no sistema operacional principal? opensource.apple.com/source/Git (FWIW - O último git Eu vi a Apple pacote até à data é 1.7.12.4, que vem de Git-37)
bmike
Respostas:
105
Obrigado a todos por respostas úteis. No meu caso adicionando
Se você quer a mudança persistente entre os usuários, você pode mover-se /usr/local/binacima /usr/binno /etc/paths.
kevin
3
Esta é a solução proposta por si só ao executar Homebrew brew doctorpara diagnosticar o problema
VoxPelli
1
essa resposta deve ser atualizada com a solução de definição proposta por KevinT /etc/paths. Definindo apenas o "exportação" pode não ser suficiente, se /usr/bintem "precedência" sobre /usr/local/bin(de cerveja) ...
emgsilva
8
Lembre-se de reiniciar o terminal! Não me ocorreu até que vi o comentário de Juan Diego Gonzales abaixo
Souleiman
2
@Souleiman: Reiniciar não é necessário. source ~/.bash_profilevai reler isso. Reiniciar é provavelmente mais rápido / fácil. :)
43
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:
PS Rel para comentários sobre os riscos da edição / usr / bin: IMHO é NBD. (Eu gosto da sugestão do Global nômade de fazer "sudo ln -s / usr / local / bin / git / usr / bin / git" ... o que garante que qualquer coisa que chame "/ usr / bin / git" seja explicitamente seu gerenciado por fermentação. Mas, na minha opinião, a instalação do git implica que você esteja assumindo a propriedade do git no seu sistema. Preocupações com processos desconhecidos usando uma versão alternativa mais antiga do git podem estar fora de lugar. Eu recomendo manter-se atualizado com versões git (por segurança, não apenas recursos), e gerenciar it yourself Homebrew torna isso fácil /$0.02..
cweekly
Isso não funcionou para mim, para desfazê-lo, basta fazer: sudo mv / usr / bin / git-apple / usr / bin / git. O comentário de Juan Diego Gonzales funcionou. (basicamente, siga a resposta aceita e reinicie o terminal).
Souleiman
Mesmo which gitapontando /usr/local/bin/git, isso não funcionou para mim. Para resolver isso, tive que desinstalar o aplicativo GitHub Mac.
Ben
2
MacOS 10.12.5:sudo mv /usr/bin/git /usr/bin/git-apple mv: rename /usr/bin/git to /usr/bin/git-apple: Operation not permitted
Vladislav Rastrusny
Estes dias, parece homebrew se põe a "frente" do caminho por isso espero que não precisava mais :)
rogerdpack
32
Status 2019
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
Eu acho que isso é certo, mas você precisa para abrir um novo terminal ou a mudança não é captado
robjwilkins
Infelizmente, isso não funciona para mim.
rsp1984
2
Isso funcionou para mim no Mojave. Eu tive que abrir um novo terminal.
Craig Otis
2
brew link --overwrite gittrabalhou para mim
wickdninja 20/02
9
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á:
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).
No meu caso, eu não sabia que tinha que reiniciar o Terminal, para que essa parte possa ajudar algumas pessoas. É mais rápido que o aceito por causa de um forro. Se é uma competição, acho que minha resposta está equivocada. Caso contrário, acho que contribui. (Diga-me se você deseja que eu faça uma edição em vez disso).
Juan Diego Gonzales
Você faz isso um forro quando você instala o Homebrew
Mark
7
Achei esta resposta útil. Reiniciar o terminal é um problema não óbvio para muitas pessoas não familiarizadas com o funcionamento do .bash_profile e um lembrete gentil para o resto de nós.
Magne
@JuanDiegoGonzales Excelente observação! Fiquei me perguntando exatamente a mesma coisa depois de instalar o git e não sabia o porquê. Após o cache de sugestão, eu fiz um pouco mais de pesquisa: unix.stackexchange.com/q/5609/52921
kstratis
4
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 é
verifique se você possui direitos de administrador, pois será solicitada a senha do administrador
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.
Isso é 100% seguro? Será que vai quebrar alguma coisa relacionada ao Mac?
Levani
Se você seguir as etapas descritas, a solução não quebrará nada pré-instalado, pois os executáveis do git não são excluídos. É por isso que no passo 2, você deve renomear o / usr / bin / git original para por exemplo, como /usr/bin/git.BACKUP
Global Nomad
10
Por favor, não faça isso - você realmente não deveria estar brincando /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 $PATHvariável de ambiente antes /usr/bin- IIRC, homebrew instala/usr/local/bin
MattDMo
Obrigado @MattDMo, essa parece ser a melhor abordagem nesse caso.
Você precisa renomear o git original da apple /usr/bin/para, por exemplo, git-org, já que /usr/binnormalmente é anterior /usr/local/binao 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/binesteja na sua $PATHvariável de ambiente. Se você ainda tiver problemas, tente executar
Não renomeie ou altere as coisas em / usr / bin, pois isso pode danificar os galhos da Apple e eles serão danificados quando você fizer uma atualização do sistema ou do XCode. use o caminho para o qual ele foi projetado, #
Mark
@ Mark você tem razão. Mas não acredito que você terá problemas se alterar apenas o git em / usr / bin. Para mim, está trabalhando por vários meses.
Pfitz
Concordo que mudar normalmente as coisas no / usr / bin é uma má notícia, mas não consigo me lembrar do OS X realmente usando o git; portanto, os danos podem ser minúsculos e relacionados apenas a um sistema "limpo" que corresponde aos recibos. O dano seria uma atualização para o OS X pode substituir o novo git por uma versão mais antiga, portanto, a prática normal de localizar um novo binário fora do local do caminho do sistema.
bmike
3
Eu acho que seria muito mais fácil adicionar /usr/local/bin(homebrew do diretório de instalação, IIRC) à $PATHfrente de /usr/bin, em vez de perder tempo com renomeação e backup, etc.
MattDMo
1
Instale o git com o brew, execute-o.
brew link --force git
Feche e reabra o terminal para executar which git.
Eu recebi um erro ao executar isso, mas brew link --overwrite gitfuncionou
wickdninja 20/02
0
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.
Instale o git em git-scm.com
Provavelmente o novo git será instalado no /usr/local/bin/git
Tente git --version, se ele retornar a versão antiga da Apple do git, continue abaixo
cd ~ (mude o diretório para o seu diretório pessoal)
tipo vi .bashrc
Use i(para inserir texto no editor vi)
Se você encontrar uma linha com 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 PATHvariável, não estrague tudo, pois isso causará problemas ao seu sistema operacional) (esperamos que o novo git seja instalado /usr/local/git)
Pressione esc
Digite :wq(para salvar o .bashrcarquivo)
Saia do terminal e inicie o novo terminal
Agora tente git --version(você deve ver a nova versão)
Parece duas instalações. Eu acho que o (download) versão normal git vai para / usr / local / git / ... É então uma questão de acrescentar que para o caminho ou remover o outro (ou ambos)
Nicholaz
-2
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.
Passos
Vá para Xcode.app -> Preferências -> Downloads
Atualizar (ou instalar) ferramentas de linha de comando
Executar brew doctore corrigir todas as outras dificuldades
Execute brew upgradepara atualizar todos os pacotes de uma só vez
Respostas:
Obrigado a todos por respostas úteis. No meu caso adicionando
em
~/.bash_profile
seguido porresolveu o problema para o meu usuário.
fonte
/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) ...source ~/.bash_profile
vai reler isso. Reiniciar é provavelmente mais rápido / fácil. :)Ok, estou pronto para levar a sério o scm.
Não, não era isso que eu queria. Eu <3 homebrew, então:
Tudo pronto?
Doh! (coça a cabeça)
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:
Funcionou?
Até aí tudo bem, agora é o momento da verdade:
w00t! :) Hora de ler http://git-scm.com ! :)
fonte
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
Status 2019
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
e pronto.
Para confirmar, abra uma nova janela do terminal (!) E digite
fonte
brew link --overwrite git
trabalhou para mimDepois de instalar o git mais recente via brew (
brew install git
), execute este procedimento (como sugerido porbrew doctor
) se ele ainda não estiver lá: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.
fonte
Quando você digita
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
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.
fonte
/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.
fonte
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:
e não se esqueça de vincular o brew git
Isso pressupõe que
/usr/local/bin
esteja na sua$PATH
variável de ambiente. Se você ainda tiver problemas, tente executare corrija os problemas mencionados lá.
fonte
/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
.fonte
brew link --overwrite git
funcionouSe 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 aPATH
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)fonte
Depende de onde seu git vem. O Xcode traz uma versão, por exemplo, que talvez esteja aberta no seu caminho.
Talvez digitando
mostrará onde está o antigo.
fonte
/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.
Passos
brew doctor
e corrigir todas as outras dificuldadesbrew upgrade
para atualizar todos os pacotes de uma só vezfonte