Como atualizar o Git para a versão mais recente no macOS?


165

Acabei de comprar um novo Mac com OS X Lion e verifiquei no Terminal qual versão do git está instalada por padrão. Eu tenho a resposta

git --version
> git version 1.7.5.4

Gostaria de atualizar o git para a versão mais recente 1.7.8.3, então baixei o instalador do dmg "git-1.7.8.3-intel-universal-snow-leopard.dmg" e o iniciei.

Após a instalação, o Terminal ainda diz que a versão é 1.7.5.4. O que estou fazendo de errado?


4
Digite which gitpara ver onde está o binário. É o mesmo local em que você instalou o novo?
precisa saber é o seguinte

4
Diz /usr/bin/gitpara o 1.7.5.4, mas como posso saber onde o DMG instalou a nova versão? Por que não atualiza / substitui a versão anterior automaticamente? Se eu quiser usar o novo, como vincular o gitcomando à nova versão? (obrigado pela sua resposta muito rápido por sinal!)
Nicolas Renon

1
no meu mac (OS 10.6.8) o velho git 1.7.5.4 vidas em / usr / bin / git enquanto o novo git instalador 1.7.11.3 puts git em / usr / local /
Miker

Gostaria de saber se superuser.com/a/580611/74576 é uma boa abordagem. Eu gostaria de descobrir os comandos para isso.
21713 Ryan

Fiz entrada em .bash_profile em vez de .bashrc e funcionou. Eu acho que se o seu terminal estiver sendo executado como "Shell de Login Padrão", isso acontece.
Swapnil Chincholkar

Respostas:


58

Provavelmente seria melhor se você adicionasse:

export PATH=/usr/local/git/bin:/usr/local/sbin:$PATH

para um arquivo chamado .bashrc na sua pasta pessoal. Dessa forma, qualquer outro software em que você possa instalar /usr/local/git/bintambém será encontrado primeiro.

Para uma maneira fácil de fazer isso, basta digitar:

echo "export PATH=/usr/local/git/bin:/usr/local/sbin:$PATH" >> ~/.bashrc

no Terminal e fará isso por você.


1
Como o README.txt diz, o git está instalado em / usr / local / git.
279 bananasaus

18
A dica prática do kmikael é apenas para uma festa. (Para alterar o shell padrão do mac, desbloqueie as contas ou a janela "usuários e grupos" nas preferências do sistema, clique com a tecla Control pressionada na conta para "opções avançadas".) Uma sugestão usando bash_profile em vez de bashrc, por exemplo, echo 'export PATH="/usr/local/git/bin:/usr/local/sbin:~/bin:$PATH"' >> ~/.bash_profileestá em moncefbelyamani.com . Discussão sobre se a adicionar a .bash_profile ou .bashrc está em superuser.com
Miker

O que você usou para instalar git? Acabei de verificar a versão mais recente, o instalador oficial aqui instala o git /usr/local/git/bin/git, o que significa que o método acima ainda deve funcionar no 10.8.4.
kmikael

Obrigado @miker, funcionou para mim com .bash_profile, mas não com .bashrc.
Adimauro 29/03

Desmarquei esta solução, mesmo que funcione. Por favor, leia minha atualização da minha mensagem para obter a explicação.
Nicolas Renon

52

É simples se você já possui o Homebrew : Supondo que você tenha o homebrew instalado, digite o seguinte:

brew install git

Depois de instalado, digite as duas linhas a seguir, que definirão o caminho para a distro git local em vez da da Apple.

export PATH=/usr/local/bin:$PATH
git --version

SE você não tem HOMEBREW, siga estes passos verificação de versão

$ git --version

Faça backup (ou remova) o Apple git (opcional)

$ sudo mv /usr/bin/git /usr/bin/git-apple

Instale o Homebrew se você não tiver

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Ou atualize se você já possui

$ brew update && brew upgrade

Instale o Git com Homebrew

$ brew install git

Link simbólico

$ brew link --force git

Feche o terminal e reabra e verifique a versão

$ git --version

Você deveria ver…

git version <latest version>

Agradável! Estamos seguros agora! E da próxima vez você pode apenas…

$ brew update && brew upgrade


10
Em relação a sudo mv /usr/bin/git /usr/bin/git-apple: Renomear o sistema git não funcionará no macOS El Capitan e posterior, a menos que você desative a Proteção de Integridade do Sistema, conforme descrito aqui apple.stackexchange.com/a/248229/16290 . Pessoalmente, eu apenas atualizo o meu PATHpara o que /usr/local/binvem antes /usr/bin. Dessa forma, o git do Homebrew sempre tem precedência (depois que você fecha o terminal e reabre). Para vulnerabilidades de segurança do git, a Apple eventualmente atualizará o git fornecido com suas atualizações de segurança. Enquanto isso, pode-se simplesmente evitar o uso do git interno configurando PATH conforme descrito.
Nate Cook

16

Depois de pesquisar por "problemas para atualizar o git no mac" no Google, li várias postagens e tentei o seguinte antes de resolver o problema, concluindo a etapa 4:

  1. Atualizei o caminho do terminal usando o comando de exportação mencionado acima. Sempre que saí do terminal e o reiniciei, quando digitei git --versiono terminal, ele ainda retornava a versão 1.8 mais antiga.

  2. Eu segui as instruções do README.txt para atualizar para a versão atual 2.0.1 que acompanha o instalador .dmg e, quando reiniciei o terminal, ainda não há.

  3. Procurei a pasta / etc / path / conforme as instruções acima e o diretório chamado "path" não existe no meu Mac. Estou executando o OS X Mavericks versão 10.9.4.

  4. Lembrei-me de que o Homebrew estava instalado no meu Mac e executei o seguinte:

    brew --version
    brew update
    brew search git
    brew install git
    

Isso finalmente resolveu meu problema. Se alguém tiver alguma idéia de por que isso funcionou, uma percepção adicional será muito apreciada. Provavelmente tenho algumas configurações de caminho restantes no meu sistema para trabalhar com Ruby no ano passado.


1
Eu já tinha instalado o git. Portanto, ao seguir o último passo brew install git, recebi uma mensagem de erro e sugeriu executar o brew upgrade gitcomando. Você é o cara! Isso fez simplesmente o truque :) #
318

15

Atualizei recentemente o Git na minha máquina OS X para a mais recente também. Não usei o mesmo que .dmgvocê, mas quando o instalei, os binários foram colocados /usr/local/bin. Agora, da maneira como PATHfoi organizado, o diretório /usr/binaparece antes /usr/local/bin. Então o que eu fiz foi:

cd /usr/bin
mkdir git.ORIG
mv git* git.ORIG/

Isso move os vários programas originais nomeados git*para um novo subdiretório que os mantém fora do caminho. Depois disso, which gitmostra que o que /usr/local/binfoi encontrado.

Modifique o procedimento acima conforme necessário para caber onde quer que você tenha instalado os novos binários.


2
Obrigado! Na verdade, os novos binários foram colocados /usr/local/git.
Nicolas Renon

1
Nota: Eu tive que reiniciar o Terminal para ver o novo git. Parece óbvio, mas me confundiu no começo.
migg 28/07

15

Se estiver usando homebrew, você pode atualizar os links sim usando

brew link --overwrite git

Tentei todas as outras respostas acima desta e foi isso que finalmente me configurou com a versão mais recente do git. executando brew install gitme deu a versão mais recente, mas não configurou o link simbólico corretamente. A execução brew link gitme deu um erro dizendo que não era possível vincular o git porque ele já existia. finalmente correndo brew link --overwrite gitcoloque o prego no caixão, agora git --versionmostra que estou na versão mais atualizada do git
Gharbad The Weak

7

O instalador da página inicial do git é instalado /usr/local/gitpor padrão. No entanto, se você instalar o XCode4 , ele instalará uma versão do git no /usr/bin. Para garantir que você possa atualizar facilmente do site e usar a versão mais recente do git, edite as informações do seu perfil para colocar /usr/local/git/binantes /usr/binno $ PATH ou edite /etc/pathse insira/usr/local/git/bin como a primeira entrada.

Pode ajudar alguém, pelo menos, alterando a ordem em / etc / caminhos trabalhados para mim.



6

Eu usei o seguinte para atualizar o git no mac.

hansi$ brew install git 

hansi$ git --version 
git version 2.19.0


hansi$ brew install git
Warning: git 2.25.1 is already installed, it's just not linked
You can use `brew link git` to link this version.

hansi$ brew link git 
Linking /usr/local/Cellar/git/2.25.1... 
Error: Could not symlink bin/git
Target /usr/local/bin/git
already exists. You may want to remove it:
  rm '/usr/local/bin/git'

To force the link and overwrite all conflicting files:
  brew link --overwrite git

To list all files that would be deleted:
  brew link --overwrite --dry-run git

hansi$ brew link --overwrite git 
Linking /usr/local/Cellar/git/2.25.1... 205 symlinks created


hansi$ git --version
git version 2.25.1

no meu caso, eu já tinha o git instalado e instalei novamente usando o homebrew, que baixou uma versão mais recente, mas não estava vinculada corretamente. Acabei precisando desvincular manualmente e, em seguida, vinculá-lo novamente. Eu também precisei reabrir minha sessão de terminal para encontrar a nova versão em vez da versão mais antiga / do sistema: brew unlink git && brew link git && source ~/.bashrc
FireDragon


2

Para manter as duas versões, alterei o valor da variável de ambiente PATH colocando o caminho git da nova versão "/ usr / local / git / bin /" no início, força a utilização da versão mais recente:

$ echo $ PATH

/ usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin: / usr / local / git / bin /

$ git --version

git versão 2.4.9 (Apple Git-60)

valor original: / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin: / usr / local / git / bin /

novo valor: / usr / local / git / bin / : / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin

$ export PATH = / usr / local / git / bin /: / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin

$ git --version

git versão 2.13.0


1

Sem Homebrew

  1. Use o instalador no site do git.
  2. Atualize seu ~/.bash_profilearquivo.Observe que este comando difere da resposta do kmikael pelo que ele coloca no arquivo:
    • Outro comando: export PATH=/usr/local/git/bin:/usr/local/sbin/:[and so on]
    • Abaixo do comando: export PATH="/usr/local/git/bin:/usr/local/sbin:$PATH"
    • Use o que você preferir.

echo 'export PATH="/usr/local/git/bin:/usr/local/sbin:$PATH"' >> ~/.bash_profile

  1. Se você estiver usando o Xcode, precisará adicionar alguns links simbólicos .
    • Exemplo: ln -s /opt/local/bin/git /usr/bin/git
  2. Reinicie o terminal.
    • which git deve dizer o diretório no README.txt arquivo do dmg.
    • git --version deve dizer a versão atualizada.
    • echo $PATH deve começar com /usr/local/git/bin:/usr/local/sbin:

0

Prefiro não alterar a hierarquia do caminho, mas lidar com o git especificamente ... sabendo que nunca vou usar o git antigo para fazer o que o novo git agora gerenciará . Esta é uma solução de força bruta.

NOTA: Instalei o XCode no Yosemite (10.10.2), limpe primeiro .

Eu instalei a partir do binário disponível no git-scm.com .

$ which git
/usr/bin/git
$ cd /usr/bin
$ sudo ln -sf /usr/local/git/bin/git
$ sudo ln -sf /usr/local/git/bin/git-credential-osxkeychain
$ sudo ln -sf /usr/local/git/bin/git-cvsserver
$ sudo ln -sf /usr/local/git/bin/git-receive-pack
$ sudo ln -sf /usr/local/git/bin/git-shell
$ sudo ln -sf /usr/local/git/bin/git-upload-archive
$ sudo ln -sf /usr/local/git/bin/git-upload-pack
$ ls -la
(you should see your new symlinks)

0

Eu fiz assim:

  1. Abra o aplicativo GitHub instalado no Mac
  2. Clique na guia Avançado → Instalar ferramentas de linha de comando
  3. Depois de receber a mensagem de que todos os comandos foram instalados, feche o seu terminal e abra-o novamente.
  4. Agora verifique git --version, ele deve fornecer a versão mais recente.

0

Você precisa ajustar o caminho do shell, o caminho será definido em .bashrc ou .bash_profile em seu diretório pessoal, mais provavelmente .bash_profile

Portanto, adicione no caminho semelhante ao abaixo e mantenha o que você já possui no caminho, cada segmento é separado por dois pontos:

exportar PATH = "/ usr / local / bin: / usr / bin / git: / usr / bin: / usr / local / sbin: $ PATH"


0

A versão mais recente não estava disponível como um binário para mac no git-scm.com, então instalei a partir da fonte. Estava faltando um pacote necessário para localização e adicionado NO_GETTEXT=trueà instalação sem localização.

git clone https://github.com/git/git.git
cd git
make NO_GETTEXT=true
make NO_GETTEXT=true install

Este instalado gitsob o ~/binqual eu tive que adicionar ao início da minha PATHvariável.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.