Hvordan bruges Homebrew installeret git på Mac?

Jeg har installeret den nyeste version af git (1.8.3) ved hjælp af homebrew, men når jeg skriver

git --version 

i min terminal udskriver den:

git version 1.7.10.2 (Apple Git-33) 

Hvad skal jeg gøre for at erstatte den gamle version af git med den nye?

Kommentarer

  • Du har et par gode svar – så jeg ville gerne kommentere spørgsmålet. Leder du efter eksplicitte instruktioner til installation af git fra kilde fra homebrew eller en GUI-klient eller bare bekræftelse på, at OS X bundterer flere versioner af git med core OS? opensource.apple.com/source/Git (FWIW – Den nyeste git I ‘ har set Apple-pakke til dato er 1.7.12.4, der kommer fra Git-37)

Svar

Tak alle for nyttige svar. I mit tilfælde tilføjer

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

i ~/.bash_profile efterfulgt af

source ~/.bash_profile 

løste problemet for min bruger.

Kommentarer

  • Hvis du vil have ændringen vedvarende på tværs af brugere, kan du flytte /usr/local/bin over /usr/bin i /etc/paths.
  • Dette er den foreslåede løsning af Homebrew selv, når du kører brew doctor for at diagnosticere problemet
  • dette svar skal opdateres med den foreslåede KevinT-løsning til at definere /etc/paths. At definere kun ” eksport ” er muligvis ikke nok, hvis /usr/bin har ” forrang ” over /usr/local/bin (fra bryg) …
  • Husk at genstarte terminalen! Skete ‘ mig ikke, indtil jeg så Juan Diego Gonzales ‘ s kommentar nedenfor
  • @Souleiman: Genstart af isn ‘ t nødvendigt. source ~/.bash_profile læser det igen. Genstart er sandsynligvis bare hurtigere / lettere. 🙂

Svar

Status 2020

Alle de tricks, der er nævnt her i flere svar er ikke nødvendige længere på macOS Sierra, Mojave & Catalina med den nyeste Homebrew. Glem export PATH="..." og ændringer til ~/.bash_profile.

Det gør du simpelthen

brew install git 

og du er færdig.

For at bekræfte skal du åbne et nyt terminalvindue / fane og skrive

git --version 

Glem ikke at åbne et nyt vindue. Terminaler, der var åbne, før du begyndte at install, arver ingen ændringer.

Svar

Ok, jeg er klar til at blive seriøs med scm.

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

Nej, det er ikke, hvad jeg ønskede. Jeg < 3 homebrew, så:

$ brew install git 

Er alt klar?

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

Doh! (ridser hovedet)

$ which git /usr/bin/git 

Ah, Apple s git er i / usr / bin, så det trumfer hjemmebrygget. Hvad skal man gøre?

(A) Omdøb bare Apples binære

(B) Lad homebrew-administreret have forrang:

[rediger PATH-eksport f.eks. i ~ / .zshrc (oh-my-zsh + iTerm2 FTW! / tangent)]

[specifikt: move / usr / local / bin / git: before / usr / bin:]

… og / eller (f.eks. for mere bredt at lade homebrew ting trumfsystem installeres og have forrang for alle skaller og brugere) rediger også / etc / stier-filen, [flytter / usr / lokal / bin over / usr / bin]

Men forudsat bare den enkleste / mindst invasive tilgang:

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

Fungerede det?

$ which git /usr/local/bin/git 

Så langt så godt, nu sandhedens øjeblik:

$ git --version git version 2.2.1 

w00t! 🙂 Tid til at læse http://git-scm.com ! 🙂

Kommentarer

  • PS Rel til kommentarer om risici ved redigering / usr / bin: IMHO it ‘ s NBD. (Tho jeg kan lide Global nomad ‘ foreslår at gøre ” sudo ln -s / usr / local / bin / git / usr / bin / git ” … hvilket sikrer, at alt der ringer til ” / usr / bin / git ” vil eksplicit få din bryg-administrerede. Men min mening er, at installation af git indebærer, at du ‘ igen tager ejerskab af git på dit system. Bekymringer for ukendte processer, der bruger en ældre , alternativ version af git, kan være forkert placeret. Jeg anbefaler at holde dig opdateret med git-versioner (af sikkerhedshensyn, ikke kun funktioner) og administrere det selv. Homebrew gør det nemt. /$0.02
  • Dette gjorde det ikke ‘ t arbejde for mig, for at fortryde det skal du bare gøre: sudo mv / usr / bin / git-apple / usr / bin / git. Juan Diego Gonzales ‘ s kommentar fungerede. (følg dybest set det accepterede svar, og genstart derefter terminalen).
  • Selv med which git, der peger på /usr/local/bin/git, gjorde dette ikke ‘ t arbejde for mig. For at løse dette måtte jeg afinstallere 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
  • Brug bare brew doctor. I 2020 anbefalede det brew link —overwrite git

Svar

Når du “har installeret den seneste git via brygge (brew install git), kør denne one-liner (som foreslået af brew doctor), hvis den ikke er” t allerede der:

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

Afslut derefter Terminal og åbn den igen (genstart din bash-session). Du skal gøre dette, selvom din PATH allerede var korrekt, da ZSH og Bash cache indholdet af PATH (se dokumentationen til den indbyggede kommando hash).

Det skal løse tingene rigtig hurtigt.

Kommentarer

  • Hvordan adskiller dette sig fra det accepterede svar?
  • I min sag vidste jeg ikke ‘ at jeg var nødt til at genstarte Terminal, så den del kan hjælpe nogle mennesker. Er hurtigere end det accepterede på grund af den ene liner. Hvis det ‘ er en konkurrence, tror jeg, at mit svar er forkert placeret. Ellers tror jeg, det bidrager. (Fortæl mig, hvis du vil have mig til at redigere i stedet for dette).
  • Du gør den ene linie, når du installerer Homebrew
  • Jeg fandt dette svar nyttigt. At genstarte terminalen er et ikke-indlysende problem for mange mennesker, der ikke er fortrolige med .bash_profiles arbejde, og en mild påmindelse for resten af os.
  • @JuanDiegoGonzales Fremragende observation! Jeg undrede mig over den nøjagtige samme ting, efter at jeg havde installeret git og ikke ‘ ikke vidste hvorfor. Efter cachen tipet, undersøgte jeg lidt mere: unix.stackexchange.com/q/5609/52921

Svar

Jeg prøvede dette, og det virker for mig.

brew link --overwrite git 

Kommentarer

  • Arbejdet for mig på Mojave (10.14.4)

Svar

Når du skriver

git --version 

i Terminal.app eller konsol, angav din kommentar til et andet spørgsmål den version, det returnerer er git i / usr / bin / git

Hvis du installerede Xcode 4.5 (og nyere), og skriv

xcrun git --version 

i Terminal.app eller konsol, den version, den returnerer, er git i Xcode-appbundtet.

Hvis du bruger Homebrew til at installere og opdatere git, er den enkleste løsning at

  1. Sørg for, at du har administratorrettigheder, da du bliver bedt om adgangskoden til administratoren
  2. omdøber den oprindelige placering ved at omdøbe den ved hjælp af mv. For eksempel

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

  3. Opret et blødt link ved hjælp af “ln -s” til den git binære, du installerede med Homebrew .

Bemærk, at MattDMo har en bedre løsning i kommentarerne.

Kommentarer

  • Er dette 100% sikkert? Vil det ødelægge noget mac-relateret?
  • Hvis du følger de beskrevne trin, vil løsningen ‘ ikke bryde noget forudinstalleret, da disse git-eksekverbare filer ikke slettes. Dette er grunden til, at du i trin 2 skal omdøbe din originale / usr / bin / git til f.eks. som /usr/bin/git.BACKUP
  • Don ‘ t gør dette – du burde virkelig ikke ‘ t være rodet med /usr/bin, da det ‘ er muligt, at andre programmer du ikke ‘ ikke engang vide om afhænger af vagaries forbundet med en bestemt version. Den nemmeste løsning uden at flytte noget er at tilføje /usr/local/bin til din $PATH miljøvariabel før /usr/bin – IIRC, homebrew installeres til /usr/local/bin
  • Tak @MattDMo, det ser ud til at være den bedste tilgang i dette tilfælde.

Svar

Installer git med bryg, kør dette.

brew link --force git

Luk og åbn terminalen igen for at køre which git.

Kommentarer

  • Hvordan ændrer det standardstien?
  • Dette fungerede for mig at tilsidesætte xcode ‘ s git.
  • Jeg fik en fejl under kørsel dette men brew link --overwrite git fungerede

Svar

Du skal omdøbe den originale git af apple i /usr/bin/ til e. g. git-org, da /usr/bin normalt er før /usr/local/bin i din stifunktion, hvor bryggen er.

Så:

cd /usr/bin sudo mv git git-org 

og glem ikke at linke bryg-git

brew link git 

Dette forudsætter, at /usr/local/bin er i din $PATH miljøvariabel.Hvis du stadig har problemer, så prøv at køre

brew doctor 

og rette de nævnte problemer der.

Kommentarer

  • Don; t omdøbe eller chnage ting i / usr / bin, da det kan ødelægge Apple-tigre, og de bliver chnaged, når du foretager en system- eller XCode-opdatering. brug den sti, som det er designet til,
  • @Mark du har et punkt. Men jeg tror ikke, du får problemer, hvis du kun skifter git i / usr / bin. For mig fungerer det i flere måneder.
  • Jeg er enig i, at det normalt er dårlige nyheder at ændre ting i / usr / bin, men jeg kan ‘ ikke huske OS X bruger faktisk git, så skaden der kan være lille og kun relaterer til et ” rent ” system, der matcher kvitteringerne. Skaden ville være en opdatering af OS X kan erstatte den nye git med en ældre version, derfor er den normale praksis at lokalisere en ny binær uden for systemstien.
  • Jeg tror, det ville være meget lettere at tilføje /usr/local/bin (homebrew ‘ s installationsmappe, IIRC) til $PATH foran /usr/bin i stedet for at skubbe rundt med omdøbning og sikkerhedskopiering osv.

Svar

Hvis du installerer git fra git-scm.com direkte og gerne vil bruge den senest downloadede git i stedet for apple (gammel) version af git.

  1. Installer git fra git-scm .com
  2. Der installeres sandsynligvis ny git i /usr/local/bin/git
  3. Prøv git --version, hvis det returnerer Apples gamle version af git, skal du fortsætte nedenfor
  4. cd ~ (skift mappe til din hjemmekatalog)
  5. skriv vi .bashrc
  6. Brug i (for at indsætte tekst i vi-editor)
  7. Hvis du finder en linje med export PATH......., skal du trykke på enter oven på eksporten og skriv følgende: export PATH=/usr/local/:$PATH (Vær yderst forsigtig med PATH variabel skal du ikke ødelægge det ellers vil det give problemer for dit operativsystem) (forhåbentlig ny git skal installeres i /usr/local/git)
  8. Tryk på esc
  9. Indtast :wq (til gem .bashrc filen)
  10. Afslut ud af terminalen og start den nye terminal
  11. Prøv nu git --version (du skal se en ny version)

Svar

Lav et simpelt alias for at undgå at ændre sti:

alias git=/usr/local/bin/git 

Svar

Jeg har prøvet mange ting inklusive alt dette indlæg ” s svar. Endelig var jeg i stand til at få bryggeversionen af git til at køre i stedet for Xcode “s ved simpelthen at slette Xcodes ekstra værktøjsmappe:

sudo rm -rf /Library/Developer/CommandLineTools

Svar

Når du bruger brew install git til installationen, skal du bemærke, at den installerer git under:

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

Du vil også få en fejl, der vises tidligere i loggen, og sandsynligvis savnede du den:

 ==> 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 bare:

 brew link --overwrite git  

og du skal være god.

Svar

Det afhænger af, hvor din git kommer fra. Xcode bringer f.eks. en version, måske er det på forhånd i din sti.

Måske skriver

which git 

viser, hvor den gamle er.

Kommentarer

  • det ‘ s i /usr/bin/git
  • Det ligner to installationer. Jeg tror, at den normale (downloadbare) git-version går til / usr / local / git / … Det ‘ s er så et spørgsmål om at tilføje det til stien eller fjerne den anden (eller begge)

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *