題:
如何在Mac上使用Homebrew安裝的git?
Levani
2013-06-03 16:50:23 UTC
view on stackexchange narkive permalink

我已經使用自製軟件安裝了最新版本的git(1.8.3),但是當我在終端中鍵入

  git --version  

,它會打印:

  git版本1.7.10.2(Apple Git-33) 

我應該怎麼做才能用新版本替換舊版本的git。一個?

您有幾個很好的答案-所以我想對這個問題發表評論。您是否正在尋找明確的指示,以從自製軟件或GUI客戶端從源代碼安裝git,或者只是確認OS X將多個版本的git與核心OS捆綁在一起? http://www.opensource.apple.com/source/Git/(FWIW-我迄今為止看到的Apple捆綁包中最新的git是1.7.12.4,來自Git-37)
十三 答案:
Levani
2013-06-05 18:25:30 UTC
view on stackexchange narkive permalink

感謝大家提供有用的答案。以我為例,在〜/ .bash_profile

  export PATH =“ / usr / local / bin:$ {PATH}”  

/ code>,然後

 源〜/ .bash_profile  

為我的用戶解決了該問題。

如果要使更改在所有用戶之間持久存在,則可以將/ usr / bin / bin移到/ etc / paths中的/ usr / bin之上。
這是Homebrew本身在運行“ brew doctor”來診斷問題時提出的解決方案
這個答案應該用KevinT提出的定義`/ etc / paths`的解決方案來更新。如果`/ usr / bin`在`/ usr / local / bin`之上(來自brew),則僅定義“ export”可能還不夠...
“解決了這個問題。”怎麼了
記住要重啟終端!直到我在下面看到Juan Diego Gonzales的評論時,我才想到
@Souleiman:無需重新啟動。`source〜/ .bash_profile`將重新讀取該內容。重新啟動可能只是更快/更容易。:)
@BSeven“我應該怎麼做才能用新版本替換git的舊版本?”是問題所在。
我們是否知道為什麼在PATH中添加/ usr / local / bin可以解決此問題?自製如何在xcode git上享有優先權?
@PriyaRanjanSingh:在/ path / * before * // usr / bin中包含`/ usr / local / bin`,使每條命令都能找到/ git / usr / local / bin中的git版本。是/ usr / bin中的標準Apple。這個版本是`Homebrew`安裝的版本。
`brew link --overwrite git`對我有用
Jpsy
2017-02-08 20:34:06 UTC
view on stackexchange narkive permalink

2020年狀態

在macOS Sierra,Mojave & Catalina和最新的Homebrew上,這裡不再需要在幾個答案中提到的所有技巧。忘記 export PATH =“ ...” 和對〜/ .bash_profile 的修改。

您只需

 釀造git
 

您完成了。

要確認,請打開新的終端窗口/標籤並輸入

  git --version
 
我認為這是正確的,但是您需要打開一個新終端,否則更改未完成
這與最新的Homebrew版本無關,而是與/ usr / local / bin在全新macOS安裝的默認路徑中有關。我目前無法驗證,但假設您已驗證。
cweekly
2014-04-10 03:42:32 UTC
view on stackexchange narkive permalink

好,我準備認真對待scm。

  $ git --versiongit版本1.9.5(Apple Git-50.3) 

不,那不是我想要的。我是<3自製軟件,所以:

  $ brew install git  

所有設置?

  $ git --versiongit版本1.9.5(Apple Git-50.3) 

Do! (抓頭)

  $ git / usr / bin / git  

啊,蘋果的git在/ usr / bin中,所以勝過自製一。

(A)只需重命名Apple的二進製文件

(B),讓自製軟件管理的文件優先處理:

[編輯PATH導出,例如在〜/ .zshrc中(oh-my-zsh + iTerm2 FTW!/ tangent)]

[具體是:將/ usr / local / bin / git:移動到/ usr / bin:]

...和/或(例如,更廣泛地讓自製軟件勝過系統安裝,並且優先適用於所有shell和用戶)還編輯/ etc / paths文件,[將/ usr / local / bin移至/ usr / bin]

但假設僅是最簡單/侵入性最小的方法:

  $ sudo mv / usr / bin / git / usr / bin / git-apple   
  $起作用了嗎? 
  $其中git / usr / local / bin / git  

到目前為止,現在是關鍵時刻:

  $ git --versiongit版本2.2.1  

w00t! :)是時候閱讀 http://git-scm.com了! :)

PS Rel對編輯/ usr / bin的風險發表評論:恕我直言,它是NBD。(我喜歡Global Nomad的建議。執行“ sudo ln -s / usr / local / bin / git / usr / bin / git” ...可以確保明確調用“ / usr / bin / git”的任何內容您的brew管理的。但是我的看法是,安裝git意味著您對系統擁有git的所有權。擔心使用較舊的替代版本git的未知進程可能會引起誤解。git版本(出於安全性考慮,不僅限於功能),還可以自行管理。自製軟件可以輕鬆做到這一點/0.02美元
要撤消它,這對我不起作用,只需這樣做:sudo mv / usr / bin / git-apple / usr / bin / git。胡安·迭戈·岡薩雷斯(Juan Diego Gonzales)的評論奏效。(基本上,按照接受的答案,然後重新啟動終端)。
即使`which git`指向`/ usr / local / bin / git`,這對我也不起作用。為了解決這個問題,我必須卸載GitHub Mac應用程序。
MacOS 10.12.5:`sudo mv / usr / bin / git / usr / bin / git-apple mv:將/ usr / bin / git重命名為/ usr / bin / git-apple:不允許操作
如今,自製程序似乎將自己置於PATH的“前端”,因此希望不再需要它了:)
只需使用“釀酒醫生”即可。在2020年,它建議使用“ brew link —覆蓋git”
Juan Diego Gonzales
2014-01-21 19:39:44 UTC
view on stackexchange narkive permalink

一旦您通過brew安裝了最新的git(
brew install git ),請運行此單行代碼(如 brew doctor 所建議)已經存在:

  echo“ export PATH = / usr / local / bin:$ PATH” >>〜/ .bash_profile  

然後退出終端再次打開(重新啟動bash會話)。即使您的PATH已經正確,您也需要這樣做,因為ZSH和Bash會緩存PATH的內容(請參閱內置命令 hash 上的文檔)。

應該可以很快地解決問題。

這與接受的答案有何不同?
就我而言,我不知道我必須重新啟動Terminal,所以這部分內容可能會對某些人有所幫助。由於一線而比公認的快。如果是比賽,我想我的答案放錯了地方。否則,我認為它有所貢獻。 (如果您要我代替它進行編輯,請告訴我)。
安裝Homebrew時,您只需要一根襯墊
我發現這個答案很有幫助。對於許多不熟悉.bash_profile運作方式的人來說,重新啟動終端不是一個顯而易見的問題,它對我們其他人也是一個溫柔的提醒。
@JuanDiegoGonzales出色的觀察!我在安裝git後不知道為什麼會完全相同。在出現“緩存”提示之後,我進行了更多研究:http://unix.stackexchange.com/q/5609/52921
如今,自製程序似乎將自己置於PATH的“前端”,因此希望不再需要它了:)
Song WANG
2017-05-29 14:49:45 UTC
view on stackexchange narkive permalink

我嘗試過了,對我有用。

  brew鏈接-覆蓋git
 
在Mojave(10.14.4)上為我工作
Global nomad
2013-06-03 17:28:48 UTC
view on stackexchange narkive permalink

在Terminal.app或控制台中鍵入

  git --version  

時,您對另一個問題的評論表明它返回的版本是/ usr / bin / git

中的git如果您安裝了Xcode 4.5(及更高版本),並鍵入

  xcrun git --version  

在Terminal.app或控制台中,它返回的版本是Xcode應用程序捆綁包中的git。

如果您使用Homebrew安裝和更新git,最簡單的解決方案是

  1. 確保您具有管理員權限,因為會要求您輸入管理員密碼
  2. 使用mv重命名原始位置,從而重命名原始位置。例如

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

  3. 使用'ln -s'創建一個軟鏈接來

  4. ol>

    。請注意,MattDMo在註釋中提供了更好的解決方案。

這是100%安全的嗎?它會破壞任何與mac相關的東西嗎?
如果您遵循列出的步驟,該解決方案將不會破壞任何預安裝的內容,因為這些git可執行文件不會被刪除。這就是為什麼在第2步中應將原始的/ usr / bin / git重命名為例如的原因。作為/usr/bin/git.BACKUP
請不要這樣做-確實不應該弄混`/ usr / bin`,因為您甚至不知道的其他程序有可能依賴於與特定版本相關的變化。最簡單的解決方案是不加任何動作,而是在/ usr / bin之前將`/ usr / local / bin`添加到$ PATH`環境變量中-IIRC,將自製軟件安裝到`/ usr / local / bin`中
感謝@MattDMo,,在這種情況下,這似乎是最好的方法。
John
2017-04-15 09:33:38 UTC
view on stackexchange narkive permalink

用brew安裝git,運行它。

brew鏈接--force git

關閉並重新打開終端以運行 git

如何更改默認路徑?
這對我來說覆蓋了xcode的git。
運行此程序時出現錯誤,但`brew link --overwrite git`工作正常
Pfitz
2013-06-03 19:09:01 UTC
view on stackexchange narkive permalink

您必須通過 / usr / bin / 中的apple將原始git重命名為e。 G。 git-org,因為 / usr / bin 通常在釀造物所在的路徑目錄中的 / usr / local / bin 之前。

所以:

  cd / usr / binsudo mv git git-org  

,不要忘記鏈接brew git

  brew link git  

這假定 / usr / local / bin 在您的 $ PATH 環境變量中。如果仍然有問題,請嘗試運行

 啤酒醫生 

並解決此處提到的問題。

不要重命名或更改/ usr / bin中的內容,因為它可能會破壞Apple提示,並且在執行系統或XCode更新時它們會被更改。使用它設計的路徑,
@Mark你有一點。但是我不相信如果只更改/ usr / bin中的git不會麻煩。對我來說,它工作了幾個月。
我同意通常更改/ usr / bin中的內容是個壞消息,但是我無法真正使用git來回憶OS X,因此危害可能很小,並且僅與匹配收據的“乾淨”系統有關。危害在於OS X的更新可能會用較舊的版本替換新的git,因此通常的做法是在系統路徑位置之外定位新的二進製文件。
我認為將`/ usr / local / bin`(自製軟件的安裝目錄,IIRC)添加到`/ usr / bin`之前的$ PATH會容易得多,而不是重新命名和備份等等。
dataramr
2015-02-06 10:23:24 UTC
view on stackexchange narkive permalink

如果直接從git-scm.com安裝git,並且想要使用最新下載的git而不是git的蘋果(舊)版本。

  1. 從git-scm安裝git .com
  2. 很可能新的git將安裝在 / usr / local / bin / git
  3. 嘗試 git --version ,如果返回的是Apple舊版本的git,則請繼續以下操作
  4. cd〜(將目錄更改為您的主目錄)
  5. 鍵入 vi。 bashrc
  6. 使用 i (在vi編輯器中插入文本)
  7. 如果找到帶有 export PATH的行... .... ,請在導出的頂部按Enter鍵,然後輸入以下內容: export PATH = / usr / local /:$ PATH (請特別小心,請使用 PATH 變量不要弄亂它,否則會給您的操作系統造成問題)(希望新的git應該安裝在 / usr / local / git 中)
  8. 按esc
  9. 輸入:wq (以保存 .bashrc 文件)
  10. 退出終端並啟動n ew終端
  11. 現在嘗試 git --version (您應該會看到新版本)
  12. ol>
Jinesh
2020-06-05 04:43:00 UTC
view on stackexchange narkive permalink

使用簡單的別名以避免更改路徑:

 別名git = / usr / local / bin / git
 
Ryan Walker
2020-06-24 02:58:17 UTC
view on stackexchange narkive permalink

我已經嘗試了很多方法,包括這篇文章的所有答案。最終,我只需刪除Xcode的其他工具文件夾,即可運行brew的git版本而不是Xcode:

sudo rm -rf / Library / Developer / CommandLineTools

Nicholaz
2013-06-03 17:05:16 UTC
view on stackexchange narkive permalink

這取決於您的git的來源。例如,Xcode帶來了一個版本,它可能在您的路徑中。

也許鍵入

 哪個git  

會顯示在哪裡舊的是。

它在`/ usr / bin / git`中...
看起來像兩個安裝。我認為普通的(可下載的)git版本轉到/ usr / local / git / ...這是將其添加到路徑或刪除另一個(或兩者)的問題
iGbanam
2013-09-03 20:54:11 UTC
view on stackexchange narkive permalink

要在OSX上使用Homebrew進行升級(涉及使用gcc進行編譯),請確保已從Xcode更新了命令行工具-是的,我知道,這很麻煩,必須在應用程序的首選項中隱藏系統範圍的工具。

步驟

  1. 轉到Xcode.app —>首選項—>下載
  2. 更新(或安裝)命令行工具
  3. 運行 brew doctor 並解決所有其他障礙
  4. 運行 brew upgrade 一次升級所有軟件包
  5. ol>


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...