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 detbrew 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
- Sørg for, at du har administratorrettigheder, da du bliver bedt om adgangskoden til administratoren
-
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
-
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.
- Installer git fra git-scm .com
- Der installeres sandsynligvis ny git i
/usr/local/bin/git
- Prøv
git --version
, hvis det returnerer Apples gamle version af git, skal du fortsætte nedenfor -
cd ~
(skift mappe til din hjemmekatalog) - skriv
vi .bashrc
- Brug
i
(for at indsætte tekst i vi-editor) - 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 medPATH
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
) - Tryk på esc
- Indtast
:wq
(til gem.bashrc
filen) - Afslut ud af terminalen og start den nye terminal
- 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)