Hur använder jag den Homebrew-installerade git på Mac?

Jag har installerat den senaste versionen av git (1.8.3) med homebrew men när jag skriver

git --version 

i min terminal skrivs ut:

git version 1.7.10.2 (Apple Git-33) 

Vad ska jag göra för att ersätta den gamla versionen av git med den nya?

Kommentarer

  • Du har ett par bra svar – så jag ville kommentera frågan. Letar du efter uttryckliga instruktioner för att installera git från källan från homebrew eller en GUI-klient eller bara en bekräftelse på att OS X buntar flera versioner av git med core OS? opensource.apple.com/source/Git (FWIW – Den senaste git jag ’ har sett Apple-paket hittills är 1.7.12.4 som kommer från Git-37)

Svar

Tack alla för hjälpsamma svar. I mitt fall lägger till

export PATH="/usr/local/bin:${PATH}" 

i ~/.bash_profile följt av

source ~/.bash_profile 

löste problemet för min användare.

Kommentarer

  • Om du vill att ändringen ska vara beständig mellan användare kan du flytta /usr/local/bin ovan /usr/bin i /etc/paths.
  • Detta är den föreslagna lösningen av Homebrew själv när du kör brew doctor för att diagnostisera problemet
  • detta svar bör uppdateras med KevinT föreslagna lösning för att definiera /etc/paths. Att bara definiera ” export ” kanske inte räcker, om /usr/bin har ” företräde ” över /usr/local/bin (från brygga) …
  • Kom ihåg för att starta om terminalen! ’ tänkte mig inte tills jag såg Juan Diego Gonzales ’ s kommentar nedan
  • @Souleiman: Starta om isn ’ t nödvändigt. source ~/.bash_profile läser om det igen. Omstart är förmodligen snabbare / lättare. 🙂

Svar

Status 2020

Alla knep som nämns här i flera svar är inte nödvändiga längre på macOS Sierra, Mojave & Catalina med den senaste Homebrew. Glöm export PATH="..." och ändringar av ~/.bash_profile.

Du gör helt enkelt

brew install git 

och du är klar.

För att bekräfta, öppna ett nytt terminalfönster / flik och skriv

git --version 

Glöm inte att öppna ett nytt -fönster. Terminaler som var öppna innan du började install ärver inga ändringar.

Svar

Okej, jag är redo att bli seriös med scm.

$ git --version git version 1.9.5 (Apple Git-50.3) 

Nej, det är inte vad jag ville ha. Jag < 3 homebrew, så:

$ brew install git 

Allt klart?

$ git --version git version 1.9.5 (Apple Git-50.3) 

Doh! (skrapar på huvudet)

$ which git /usr/bin/git 

Ah, Apples git finns i / usr / bin, så det trummar hembryggeriet. Vad ska man göra?

(A) Byt bara namn på Apples binära

(B) Låt homebrew-hanterad ha företräde:

[redigera PATH-export t.ex. i ~ / .zshrc (oh-my-zsh + iTerm2 FTW! / tangent)]

[specifikt: flytta / usr / lokal / bin / git: före / usr / bin:]

… och / eller (t.ex. för att bredare låta trump-systeminstallationer för homebrew stuff och ha företräde för alla skal och användare) redigerar också / etc / path-filen, [flyttar / usr / local / bin ovan / usr / bin]

Men antar vi bara det enklaste / minst invasiva tillvägagångssättet:

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

Fungerade det?

$ which git /usr/local/bin/git 

Hittills så bra, nu sanningens ögonblick:

$ git --version git version 2.2.1 

w00t! 🙂 Dags att läsa http://git-scm.com ! 🙂

Kommentarer

  • PS Rel till kommentarer om risker med redigering / usr / bin: IMHO it ’ s NBD. (Tho I like Global nomad ’ s suggest. To do ” sudo ln -s / usr / local / bin / git / usr / bin / git ” … vilket säkerställer att allt som ringer till ” / usr / bin / git ” kommer uttryckligen att få din brygghanterade. Men jag tar det, att installera git innebär att du ’ tar igen ägandet av git på ditt system. Oron för okända processer som använder en äldre , alternativ version av git, kan vara felplacerad. Jag rekommenderar att du håller dig uppdaterad med git-versioner (för säkerhet, inte bara funktioner) och hanterar det själv. Homebrew gör det enkelt. /$0.02
  • Detta gjorde det inte ’ t fungerar för mig, för att ångra det, gör bara: sudo mv / usr / bin / git-apple / usr / bin / git. Juan Diego Gonzales ’ s kommentar fungerade. (följ i princip det accepterade svaret och starta om terminalen).
  • Även med which git som pekar på /usr/local/bin/git gjorde detta inte ’ t fungerar för mig. För att lösa detta var jag tvungen att avinstallera GitHub Mac-appen.
  • 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
  • Använd bara brew doctor. 2020 rekommenderade den brew link —overwrite git

Svar

När du ”har installerat den senaste git via brygga (brew install git), kör den här enlinjern (som föreslås av brew doctor) om den inte är redan där:

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

Avsluta sedan Terminal och öppna den igen (starta om din bash-session). Du måste göra detta även om din PATH redan var korrekt, eftersom ZSH och Bash cachade innehållet i PATH (se dokumentationen på det inbyggda kommandot hash).

Det borde fixa saker riktigt snabbt.

Kommentarer

  • Hur skiljer sig detta från det accepterade svaret?
  • I mitt fall visste jag inte ’ att jag var tvungen att starta om Terminal, så att den delen kan hjälpa vissa människor. Är snabbare än vad som accepteras på grund av ett liner. Om det ’ är en tävling tror jag att mitt svar är felplacerat. Annars tror jag att det bidrar. (Berätta för mig om du vill att jag ska redigera istället för det här.).
  • Du gör det där liner när du installerar Homebrew
  • Jag tyckte att det här svaret var till hjälp. Att starta om terminalen är en självklar fråga för många som inte känner till hur .bash_profile fungerar och en mild påminnelse för resten av oss.
  • @JuanDiegoGonzales Utmärkt observation! Jag undrade exakt samma sak efter att jag installerade git och visste inte ’ varför. Efter cache -tipsen undersökte jag lite mer: unix.stackexchange.com/q/5609/52921

Svar

Jag försökte det här och det fungerar för mig.

brew link --overwrite git 

Kommentarer

  • Fungerade för mig på Mojave (10.14.4)

Svar

När du skriver

git --version 

i Terminal.app eller konsol angav din kommentar till en annan fråga den version det returnerar git i / usr / bin / git

Om du installerade Xcode 4.5 (och nyare) och skriver

xcrun git --version 

Terminal.app eller konsol, versionen som den returnerar är git i Xcode-apppaketet.

Om du använder Homebrew för att installera och uppdatera git är den enklaste lösningen att

  1. se till att du har administratörsrättigheter eftersom du kommer att bli ombedd att lösenordet för admin
  2. byta namn på den ursprungliga platsen genom att byta namn på det med mv. till exempel

    sudo mv / usr / bin / git / usr / bin / git-ORIGINAL

  3. skapa en mjuk länk med ”ln -s” till den git binära du installerade med Homebrew .

Observera att MattDMo har en bättre lösning i kommentarerna.

Kommentarer

  • Är det 100% säkert? Kommer det att bryta något Mac-relaterat?
  • Om du följer stegen som beskrivs, kommer lösningen att ’ inte bryta något förinstallerat eftersom dessa git-körbara filer inte tas bort. Det är därför du vid steg 2 ska byta namn på ditt original / usr / bin / git för t.ex. som /usr/bin/git.BACKUP
  • Var snäll och gör ’ t gör detta – du borde verkligen inte ’ t krossa med /usr/bin, eftersom det ’ är möjligt att andra program du inte ’ t ens veta om beror på vagaries associerade med en viss version. Den enklaste lösningen utan att flytta något är att lägga till /usr/local/bin till din $PATH miljövariabel före /usr/bin – IIRC, homebrew installeras till /usr/local/bin
  • Tack @MattDMo, det verkar vara den bästa metoden i det här fallet.

Svar

Installera git med brygga, kör det här.

brew link --force git

Stäng och öppna terminalen igen för att köra which git.

Kommentarer

  • Hur ändrar det standardvägen?
  • Detta fungerade för mig att åsidosätta xcode ’ s git.
  • Jag fick ett fel när jag körde detta men brew link --overwrite git fungerade

Svar

Du måste byta namn den ursprungliga git av apple i /usr/bin/ till e. g. git-org eftersom /usr/bin normalt är före /usr/local/bin i din sökvägskatalog där brygga är.

Så:

cd /usr/bin sudo mv git git-org 

och glöm inte att länka bryggit

brew link git 

Detta förutsätter att /usr/local/bin finns i din $PATH miljövariabel.Om du fortfarande har problem försöker du köra

brew doctor 

och åtgärda problemen som nämns där.

Kommentarer

  • Don; t byta namn på eller chnage saker i / usr / bin eftersom det kan bryta Apple-tigrar och de blir chnaged när du gör en system- eller XCode-uppdatering. använd sökvägen som den är avsedd för,
  • @Mark du har en poäng. Men jag tror inte att du kommer att få problem om du bara byter git i / usr / bin. För mig fungerar det i flera månader.
  • Jag håller med om att det normalt är dåliga nyheter att ändra saker i / usr / bin, men jag kan ’ inte minnas OS X använder faktiskt git, så skadan kan vara liten och relaterar bara till ett ” rent ” -system som matchar kvitton. Skadan skulle vara en uppdatering av OS X kan ersätta den nya git med en äldre version, därav den normala praxis att lokalisera en ny binär utanför systemvägen.
  • Jag tror att det skulle vara mycket lättare att lägga till /usr/local/bin (homebrew ’ s installationskatalog, IIRC) till $PATH före /usr/bin istället för att krossa med att byta namn och säkerhetskopiera osv.

Svara

Om du installerar git från git-scm.com direkt och vill använda den senaste nedladdade git istället för apple (gammal) version av git.

  1. Installera git från git-scm .com
  2. Troligtvis kommer ny git att installeras i /usr/local/bin/git
  3. Försök git --version, om det returnerar Apples gamla version av git, fortsätt nedanför
  4. cd ~ (byt katalog till din hemkatalog)
  5. typ vi .bashrc
  6. Använd i (för att infoga text i vi-redigeraren)
  7. Om du hittar en rad med export PATH....... trycker du på enter ovanpå exporten och skriv följande: export PATH=/usr/local/:$PATH (Var ytterst försiktig med PATH variabla, förstör det inte annars kommer det att orsaka problem för ditt operativsystem) (förhoppningsvis ny git ska installeras i /usr/local/git)
  8. Tryck på esc
  9. Ange :wq (till spara .bashrc -filen)
  10. Avsluta terminalen och starta den nya terminalen
  11. Försök nu git --version (du ska se en ny version)

Svar

Gör ett enkelt alias för att undvika att ändra sökväg:

alias git=/usr/local/bin/git 

Svar

Jag har provat många saker inklusive allt detta inlägg ” s svar. Slutligen kunde jag få bryggversionen av git att köras istället för Xcode genom att helt enkelt ta bort Xcodes ytterligare verktygsmapp:

sudo rm -rf /Library/Developer/CommandLineTools

Svar

När du använder brew install git för installationen, lägg märke till att den installerar git under:

 ==> Summary 🍺 /usr/local/Cellar/git/2.29.2: 1,480 files, 39.7MB  

Du kommer få också ett fel som visas tidigare i loggen och förmodligen missade du det:

 ==> Downloading https://homebrew.bintray.com/bottles/git-2.29.2.big_sur.bottle.t Already downloaded: /Users/chadjinik/Library/Caches/Homebrew/downloads/08165d120fcebc7823c487a6778b2ea0e67fd2cd9177d6e7d656268f474ab5da--git-2.29.2.big_sur.bottle.tar.gz ==> Pouring git-2.29.2.big_sur.bottle.tar.gz Error: The `brew link` step did not complete successfully The formula built, but is not symlinked into /usr/local 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  

Kör bara:

 brew link --overwrite git  

så ska du vara bra.

Svar

Det beror på var din git kommer ifrån. Xcode ger till exempel en version, kanske är det på din väg.

Kanske att skriva

which git 

visar var den gamla är.

Kommentarer

  • det ’ s i /usr/bin/git
  • Det ser ut som två installationer. Jag tror att den normala (nedladdningsbara) git-versionen går till / usr / local / git / … Det ’ s är då en fråga om att lägga till det på sökvägen eller ta bort den andra (eller båda)

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *