Ik heb de nieuwste versie van git (1.8.3) geïnstalleerd met homebrew maar als ik typ
git --version
in mijn terminal, het print:
git version 1.7.10.2 (Apple Git-33)
Wat moet ik doen om de oude versie van git te vervangen door de nieuwe?
Opmerkingen
- Je hebt een paar goede antwoorden – dus ik wilde een opmerking maken over de vraag. Ben je op zoek naar expliciete instructies om git vanaf de broncode te installeren vanaf homebrew of een GUI-client of gewoon om bevestiging dat OS X verschillende versies van git bundelt met het kernbesturingssysteem? opensource.apple.com/source/Git (FWIW – De nieuwste git I ‘ heb Apple-bundel tot nu toe gezien is 1.7.12.4 die afkomstig is van Git-37)
Antwoord
Iedereen bedankt voor de nuttige antwoorden. In mijn geval
export PATH="/usr/local/bin:${PATH}"
toevoegen in ~/.bash_profile
gevolgd door
source ~/.bash_profile
loste het probleem voor mijn gebruiker op.
Reacties
- Als je wilt dat de verandering blijvend is voor alle gebruikers, kun je
/usr/local/bin
boven/usr/bin
in/etc/paths
. - Dit is de voorgestelde oplossing door Homebrew zelf bij het uitvoeren van
brew doctor
om het probleem te diagnosticeren - dit antwoord moet worden bijgewerkt met de door KevinT voorgestelde oplossing om
/etc/paths
. Het definiëren van alleen de ” export ” is misschien niet voldoende als/usr/bin
” prioriteit ” boven/usr/local/bin
(van brouwsel) … - Onthoud om terminal opnieuw te starten! Kwam ‘ niet bij me op totdat ik de opmerking van Juan Diego Gonzales ‘ hieronder zag
- @Souleiman: Restarting isn ‘ t nodig.
source ~/.bash_profile
zal dat herlezen. Opnieuw opstarten is waarschijnlijk gewoon sneller / gemakkelijker. 🙂
Antwoord
Status 2020
Alle trucs die hier in verschillende antwoorden worden genoemd zijn niet meer nodig op macOS Sierra, Mojave & Catalina met de nieuwste Homebrew. Vergeet export PATH="..."
en aanpassingen aan ~/.bash_profile
.
Je hoeft alleen maar
brew install git
en je bent “klaar.
Om te bevestigen, open een nieuw terminalvenster / tabblad en typ
git --version
Vergeet niet om een nieuw venster te openen. Terminals die open waren voordat u begon met install
, zullen geen wijzigingen overnemen.
Antwoord
Oké, ik ben klaar om serieus te worden over scm.
$ git --version git version 1.9.5 (Apple Git-50.3)
Nee, dat is niet wat ik wilde. Ik < 3 homebrew, dus:
$ brew install git
Helemaal klaar?
$ git --version git version 1.9.5 (Apple Git-50.3)
Ooh! (krabt hoofd)
$ which git /usr/bin/git
Ah, Apples git zit in / usr / bin, dus het overtreft de homebrew. Wat te doen?
(A) Hernoem gewoon het binaire bestand van Apple
(B) Laat een homebrew beheerde voorrang krijgen:
[bewerk PATH export bv. in ~ / .zshrc (oh-my-zsh + iTerm2 FTW! / tangent)]
[specifiek: verplaats / usr / local / bin / git: voor / usr / bin:]
… en / of (bijv. om homebrew-dingen meer in het algemeen de systeeminstallaties te laten overtreffen, en de voorrang van toepassing te laten zijn op alle shells en gebruikers) ook het bestand / etc / paden bewerken, [moving / usr / local / bin hierboven / usr / bin]
Maar uitgaande van de eenvoudigste / minst invasieve benadering:
$ sudo mv /usr/bin/git /usr/bin/git-apple
Heeft het gewerkt?
$ which git /usr/local/bin/git
Tot zover, nu het moment van de waarheid:
$ git --version git version 2.2.1
w00t! 🙂 Tijd om te gaan lezen http://git-scm.com ! 🙂
Opmerkingen
- PS Rel naar opmerkingen over de risicos van het bewerken van / usr / bin: IMHO it ‘ s NBD. (Maar ik hou wel van Global nomad ‘ s sugg. To do ” sudo ln -s / usr / local / bin / git / usr / bin / git ” … wat ervoor zorgt dat alles wat ” / usr / bin / git ” krijgt expliciet uw door brouwerij beheerde versie. Maar mijn mening is dat het installeren van git impliceert dat u ‘ eigenaar wordt van git op uw systeem. Zorgen over onbekende processen met een oudere , alternatieve versie van git, is misschien misplaatst. Ik raad aan om up-to-date te blijven met git-versies (voor veiligheid, niet alleen voor functies), en het zelf te beheren. Homebrew maakt dit gemakkelijk. /$0.02
- Dit deed het niet ‘ t werk voor mij, om het ongedaan te maken, doe je gewoon: sudo mv / usr / bin / git-apple / usr / bin / git. Juan Diego Gonzales ‘ s opmerking werkte. (in principe, volg het geaccepteerde antwoord en start de terminal opnieuw).
- Zelfs als
which git
verwijst naar/usr/local/bin/git
, is dit niet ‘ t werk voor mij. Om dit op te lossen, moest ik de GitHub Mac-app verwijderen. - 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
- Gebruik gewoon
brew doctor
. In 2020 adviseerde hetbrew link —overwrite git
Answer
Zodra u “heb de laatste git geïnstalleerd via brew (brew install git
), voer deze one-liner uit (zoals voorgesteld door brew doctor
) als het niet” t is er al:
echo "export PATH=/usr/local/bin:$PATH" >> ~/.bash_profile
Sluit Terminal en open het opnieuw (herstart je bash-sessie). U moet dit zelfs doen als uw PATH al correct was, aangezien ZSH en Bash de inhoud van PATH in de cache plaatsen (zie de documentatie over het ingebouwde commando hash
).
Dat zou dingen heel snel moeten oplossen.
Opmerkingen
- Hoe verschilt dit van het geaccepteerde antwoord?
- In in mijn geval wist ik niet ‘ dat ik Terminal moest herstarten, dus dat deel kan sommige mensen helpen. Is sneller dan geaccepteerd vanwege de enige voering. Als het ‘ een wedstrijd is, denk ik dat mijn antwoord misplaatst is. Anders denk ik dat het bijdraagt. (Vertel me of je wilt dat ik een bewerking aanbreng in plaats van deze).
- Je doet die ene voering wanneer je Homebrew installeert
- Ik vond dit antwoord nuttig. Het opnieuw opstarten van de terminal is een niet voor de hand liggend probleem voor veel mensen die niet bekend zijn met de werking van .bash_profile, en een vriendelijke herinnering voor de rest van ons.
- @JuanDiegoGonzales Uitstekende observatie! Ik vroeg me precies hetzelfde af nadat ik git had geïnstalleerd en ‘ niet wist waarom. Na de cache -hint deed ik wat meer onderzoek: unix.stackexchange.com/q/5609/52921
Antwoord
Ik heb dit geprobeerd en het werkt voor mij.
brew link --overwrite git
Reacties
- Werkte voor mij op Mojave (10.14.4)
Antwoord
Wanneer u
git --version
typt in Terminal.app of console, gaf uw opmerking op een andere vraag de versie aan return is de git in / usr / bin / git
Als je Xcode 4.5 (en nieuwer) hebt geïnstalleerd, en typ
xcrun git --version
in Terminal.app of console, de versie die het retourneert is de git in de Xcode app-bundel.
Als je Homebrew gebruikt om git te installeren en bij te werken, is de eenvoudigste oplossing om
- zorg ervoor dat u beheerdersrechten heeft aangezien u om het wachtwoord voor de beheerder wordt gevraagd.
-
hernoem de oorspronkelijke locatie door deze te hernoemen met mv. Bijvoorbeeld
sudo mv / usr / bin / git / usr / bin / git-ORIGINAL
-
maak een zachte link met “ln -s” naar het git-binaire bestand dat je hebt geïnstalleerd met Homebrew .
Merk op dat MattDMo een betere oplossing heeft in de commentaren.
Commentaren
- Is dit 100% veilig? Zal het iets breken wat Mac gerelateerd is?
- Als je de beschreven stappen volgt, zal de oplossing ‘ niets breken dat vooraf is geïnstalleerd, aangezien die uitvoerbare bestanden van Git niet worden verwijderd. Dit is waarom je bij stap 2 je originele / usr / bin / git zou moeten hernoemen voor bijv. als /usr/bin/git.BACKUP
- Gelieve ‘ niet te doen – u zou echt niet ‘ t rommelen met
/usr/bin
, aangezien het ‘ mogelijk is dat andere programmas die u niet gebruikt ‘ Ik weet zelfs niet dat het afhankelijk is van grillen in verband met een bepaalde versie. De eenvoudigste oplossing, zonder iets te verplaatsen, is om/usr/local/bin
toe te voegen aan uw$PATH
omgevingsvariabele vóór/usr/bin
– IIRC, homebrew installeert op/usr/local/bin
- Bedankt @MattDMo, dat lijkt in dit geval de beste aanpak.
Answer
Installeer git met brew, en voer dit uit.
brew link --force git
Terminal sluiten en opnieuw openen om which git
uit te voeren.
Reacties
- Hoe verandert dat het standaardpad?
- Dit werkte voor mij om xcode ‘ s git te overschrijven.
- Ik kreeg een foutmelding tijdens het draaien dit maar
brew link --overwrite git
werkte
Antwoord
Je moet de naam wijzigen de originele git by apple in /usr/bin/
naar e. g. git-org aangezien /usr/bin
normaal voor /usr/local/bin
staat in je paddirectory waar het brouwsel is.
Dus:
cd /usr/bin sudo mv git git-org
en vergeet niet om de brew git te koppelen
brew link git
Dit veronderstelt dat /usr/local/bin
staat in uw $PATH
omgevingsvariabele.Als u nog steeds problemen ondervindt, probeer dan
brew doctor
uit te voeren en los de daar genoemde problemen op.
Opmerkingen
- Verander de naam of verander de dingen in / usr / bin niet, omdat het Apple-thigs zou kunnen breken en ze zullen worden gewijzigd als je een systeem- of XCode-update uitvoert. gebruik het pad waarvoor het is ontworpen,
- @Mark je hebt een punt. Maar ik geloof niet dat je problemen zult krijgen als je alleen git in / usr / bin verandert. Voor mij werkt het een aantal maanden.
- Ik ben het ermee eens dat het normaal gesproken slecht nieuws is om dingen in / usr / bin te veranderen, maar ik kan ‘ het besturingssysteem niet herinneren X gebruikt eigenlijk git, dus de schade daar kan minuscuul zijn en alleen betrekking hebben op een ” schoon ” systeem dat overeenkomt met de ontvangsten. De schade zou zijn dat een update van OS X de nieuwe git zou kunnen vervangen door een oudere versie, vandaar de normale gewoonte om een nieuw binair bestand buiten de systeempadlocatie te lokaliseren.
- Ik denk dat het veel gemakkelijker zou zijn om toe te voegen
/usr/local/bin
(homebrew ‘ s installatiedirectory, IIRC) naar de$PATH
vóór/usr/bin
in plaats van te rotzooien met hernoemen en back-ups maken, enz.
Antwoord
Als je git direct vanaf git-scm.com installeert en je zou de laatst gedownloade git willen gebruiken in plaats van de Apple (oude) versie van git.
- Installeer git vanuit git-scm .com
- Waarschijnlijk zal nieuwe git worden geïnstalleerd in
/usr/local/bin/git
- Probeer
git --version
, als het de oude Apple-versie van git teruggeeft, ga dan hieronder verder -
cd ~
(verander directory naar je homedirectory) - typ
vi .bashrc
- Gebruik
i
(om tekst in vi-editor in te voegen) - Als je een regel vindt met
export PATH.......
, druk dan op enter bovenaan de export en typ het volgende:export PATH=/usr/local/:$PATH
(Wees uiterst voorzichtig met dePATH
variabele, verpest het niet anders zal het problemen veroorzaken voor uw besturingssysteem) (hopelijk new git moet worden geïnstalleerd in/usr/local/git
) - Druk op esc
- Typ
:wq
(naar sla het.bashrc
bestand op) - Verlaat de terminal en start een nieuwe terminal
- Probeer nu
git --version
(je zou een nieuwe versie moeten zien)
Answer
Gebruik een eenvoudige alias om te voorkomen dat je het pad verandert:
alias git=/usr/local/bin/git
Antwoord
Ik “heb veel dingen geprobeerd, inclusief al dit bericht” s antwoorden. Eindelijk was ik in staat om brews versie van git te laten draaien in plaats van Xcodes door simpelweg de map met extra tools van Xcode te verwijderen:
sudo rm -rf /Library/Developer/CommandLineTools
Antwoord
Wanneer u brew install git
gebruikt voor de installatie, let er dan op dat het git
onder:
==> Summary 🍺 /usr/local/Cellar/git/2.29.2: 1,480 files, 39.7MB
U zult krijg ook een foutmelding, die eerder in het logboek verschijnt en waarschijnlijk heb je deze gemist:
==> 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
Start gewoon:
brew link --overwrite git
en je zou braaf moeten zijn.
Antwoord
Het hangt ervan af waar je git vandaan komt. Xcode brengt bijvoorbeeld een versie, misschien staat dat vooraf op je pad.
Misschien typen
which git
zal laten zien waar de oude is.
Opmerkingen
- het ‘ s in
/usr/bin/git
… - Dat lijkt op twee installaties. Ik denk dat de normale (downloadbare) git-versie naar / usr / local / git / … gaat. Het ‘ is dan een kwestie van dat aan het pad toevoegen of de andere verwijderen (of beide)