Làm cách nào để nâng cấp Git lên phiên bản mới nhất trên macOS?


165

Tôi vừa mua một máy Mac mới với OS X Lion và tôi đã kiểm tra trong Terminal phiên bản git nào được cài đặt theo mặc định. Tôi đã có câu trả lời

git --version
> git version 1.7.5.4

Tôi muốn nâng cấp git lên phiên bản mới nhất 1.7.8.3, vì vậy tôi đã tải xuống trình cài đặt dmg "git-1.7.8.3-intel-Universal-snow-Leopard.dmg" và tôi đã khởi chạy nó.

Sau khi cài đặt, Terminal vẫn nói rằng phiên bản là 1.7.5.4. Tôi đang làm gì sai?


4
Nhập which gitđể xem nhị phân ở đâu. Có phải đó là cùng một nơi bạn đã cài đặt cái mới?
Greg Hewgill

4
Nó nói /usr/bin/gitcho 1.7.5.4, nhưng làm thế nào tôi có thể biết DMG đã cài đặt phiên bản mới ở đâu? Tại sao nó không tự động nâng cấp / ghi đè lên phiên bản trước? Nếu tôi muốn sử dụng cái mới, làm thế nào tôi có thể liên kết gitlệnh với phiên bản mới? (cảm ơn vì câu trả lời thực sự nhanh chóng của bạn bằng cách này!)
Nicolas Renon

1
trên máy mac của tôi (os 10.6.8), git cũ 1.7.5.4 sống trong / usr / bin / git trong khi trình cài đặt git mới 1.7.11.3 đặt git vào / usr / local /
miker

Tôi tự hỏi nếu superuser.com/a/580611/74576 là một cách tiếp cận tốt. Tôi ước tôi có thể tìm ra các lệnh cho nó.
Ryan

Tôi đã tạo mục nhập trong .bash_profile thay vì .bashrc và nó đã hoạt động. Tôi nghĩ rằng nếu thiết bị đầu cuối của bạn đang chạy như "Shell đăng nhập mặc định" thì nó sẽ xảy ra.
Swapnil Chincholkar

Câu trả lời:


58

Có lẽ sẽ tốt hơn nếu bạn thêm:

export PATH=/usr/local/git/bin:/usr/local/sbin:$PATH

đến một tệp có tên .bashrc trong thư mục nhà của bạn. Bằng cách này, bất kỳ phần mềm nào khác mà bạn có thể cài đặt /usr/local/git/bincũng sẽ được tìm thấy trước tiên.

Đối với một cách dễ dàng để làm điều này chỉ cần gõ:

echo "export PATH=/usr/local/git/bin:/usr/local/sbin:$PATH" >> ~/.bashrc

vào Terminal và nó sẽ làm điều đó cho bạn.


1
Giống như README.txt nói, git được cài đặt thành / usr / local / git.
Bananaaus

18
Mẹo tiện dụng của kmikael chỉ dành cho bash. (Để thay đổi trình bao mặc định của mac, hãy mở khóa tài khoản hoặc cửa sổ "người dùng & nhóm" trong prefs hệ thống, kiểm soát nhấp vào tài khoản cho "tùy chọn nâng cao".) Một đề xuất sử dụng bash_profile thay vì bashrc, ví dụ: echo 'export PATH="/usr/local/git/bin:/usr/local/sbin:~/bin:$PATH"' >> ~/.bash_profiletại moncefbelyamani.com . Thảo luận về việc nên thêm vào .bash_profile hay .bashrc tại superuser.com
miker

Bạn đã sử dụng những gì để cài đặt git? Tôi vừa kiểm tra phiên bản mới nhất, trình cài đặt chính thức ở đây cài đặt git vào /usr/local/git/bin/git, có nghĩa là phương pháp trên vẫn sẽ hoạt động vào ngày 10.8.4.
kmikael

Cảm ơn @miker nó đã làm việc với tôi với .bash_profile, nhưng không phải .bashrc.
adimauro

Tôi đã bỏ chọn giải pháp này, ngay cả khi nó hoạt động. Xin vui lòng đọc thông tin cập nhật của tôi để giải thích.
Nicolas Renon

52

Thật đơn giản nếu bạn đã có Homebrew : Giả sử bạn đã cài đặt homebrew, hãy gõ như sau:

brew install git

Sau khi được cài đặt, sau đó nhập hai dòng sau, nó sẽ đặt đường dẫn của chúng tôi đến bản phân phối git cục bộ thay vì dòng Apple.

export PATH=/usr/local/bin:$PATH
git --version

NẾU BẠN KHÔNG CÓ HOMEBREW, SAU CÁC BƯỚC NÀY Kiểm tra phiên bản

$ git --version

Sao lưu (hoặc xóa) Apple git (Tùy chọn)

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

Cài đặt Homebrew nếu bạn không có

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Hoặc cập nhật nếu bạn đã có

$ brew update && brew upgrade

Cài đặt Git với Homebrew

$ brew install git

Liên kết tượng trưng

$ brew link --force git

Đóng Terminal và mở lại sau đó kiểm tra phiên bản

$ git --version

Bạn nên thấy…

git version <latest version>

Đẹp! Bây giờ chúng ta đã an toàn! Và lần sau bạn có thể chỉ cần

$ brew update && brew upgrade


10
Về sudo mv /usr/bin/git /usr/bin/git-apple: Đổi tên hệ thống git sẽ không hoạt động trên macOS El Capitan và sau đó trừ khi bạn tắt Bảo vệ toàn vẹn hệ thống như được mô tả ở đây apple.stackexchange.com/a/248229/16290 . Cá nhân tôi chỉ cập nhật của tôi PATHđể /usr/local/binđi trước /usr/bin. Bằng cách đó, git của Homebrew luôn được ưu tiên (sau khi bạn đóng thiết bị đầu cuối và mở lại). Đối với các lỗ hổng bảo mật git, Apple cuối cùng sẽ cập nhật git kèm theo các bản cập nhật bảo mật của họ. Trong khi đó, người ta có thể đơn giản tránh sử dụng git tích hợp bằng cách định cấu hình PATH như mô tả.
Nate Cook

16

Sau khi tìm kiếm "sự cố nâng cấp git trên mac" trên Google, tôi đã đọc một số bài đăng và thử các cách sau trước khi giải quyết vấn đề bằng cách hoàn thành bước 4:

  1. Tôi đã cập nhật đường dẫn thiết bị đầu cuối của mình bằng cách sử dụng lệnh xuất đề cập ở trên. Mỗi lần tôi thoát khỏi thiết bị đầu cuối và khởi động lại nó, khi tôi gõ git --versionthiết bị đầu cuối, nó vẫn trả về phiên bản 1.8 cũ hơn.

  2. Tôi đã làm theo hướng dẫn README.txt để nâng cấp lên phiên bản 2.0.1 hiện tại đi kèm với trình cài đặt .dmg và khi tôi khởi động lại thiết bị đầu cuối, vẫn không đi.

  3. Tôi đã tìm / etc / path / thư mục như được hướng dẫn ở trên và thư mục có tên "path" không tồn tại trên máy Mac của tôi. Tôi đang chạy OS X Mavericks phiên bản 10.9.4.

  4. Sau đó, tôi nhớ lại rằng tôi đã cài đặt Homebrew trên máy Mac của mình và chạy như sau:

    brew --version
    brew update
    brew search git
    brew install git
    

Điều này cuối cùng đã giải quyết vấn đề của tôi. Nếu bất cứ ai có một cái nhìn sâu sắc về lý do tại sao điều này làm việc, cái nhìn sâu sắc hơn sẽ được đánh giá rất cao. Tôi có thể có một số cài đặt đường dẫn còn sót lại trên hệ thống của tôi khi làm việc với Ruby năm ngoái.


1
Tôi đã cài đặt git. Vì vậy, khi làm theo bước cuối cùng, brew install gittôi nhận được một thông báo lỗi và nó đề nghị thực hiện brew upgrade gitlệnh thay thế. Bạn là người đàn ông! Đó chỉ đơn giản là mánh khóe :)
Pathros

15

Gần đây tôi đã nâng cấp Git trên máy OS X của mình lên bản mới nhất. Tôi đã không sử dụng giống như .dmgbạn đã sử dụng, nhưng khi tôi cài đặt nó, các nhị phân được đặt vào /usr/local/bin. Bây giờ, cách tôi PATHđược sắp xếp, thư mục /usr/binxuất hiện trước đó /usr/local/bin. Vì vậy, những gì tôi đã làm là:

cd /usr/bin
mkdir git.ORIG
mv git* git.ORIG/

Điều này di chuyển một số chương trình ban đầu được đặt tên git*cho một thư mục con mới giúp chúng tránh xa. Sau đó, which gitcho thấy rằng một trong /usr/local/binđược tìm thấy.

Sửa đổi các thủ tục trên là cần thiết để phù hợp với bất cứ nơi nào bạn đã cài đặt nhị phân mới.


2
Cảm ơn! Trên thực tế các nhị phân mới đã được đặt vào /usr/local/git.
Nicolas Renon

1
Lưu ý: Tôi đã phải khởi động lại Terminal để xem git mới. Có vẻ rõ ràng nhưng lúc đầu làm tôi bối rối.
migg

15

Nếu sử dụng homebrew, bạn có thể cập nhật các liên kết sim bằng cách sử dụng

brew link --overwrite git

Tôi đã thử tất cả các câu trả lời khác ở trên câu trả lời này và đây là điều cuối cùng đã thiết lập cho tôi với phiên bản mới nhất của git. chạy brew install gitcho tôi phiên bản mới nhất nhưng nó không thiết lập đúng liên kết tượng trưng. chạy brew link gitcho tôi một lỗi nói rằng nó không thể là symlink git vì nó đã tồn tại. cuối cùng chạy brew link --overwrite gitđặt chiếc đinh vào quan tài để bây giờ git --versioncho thấy tôi đang ở phiên bản cập nhật nhất của git
Gharbad The Weak

7

Trình cài đặt từ trang chủ git cài đặt /usr/local/gittheo mặc định. Tuy nhiên, nếu bạn cài đặt XCode4 , nó sẽ cài đặt phiên bản git /usr/bin. Để đảm bảo bạn có thể dễ dàng nâng cấp từ trang web và sử dụng phiên bản git mới nhất, hãy chỉnh sửa thông tin hồ sơ của bạn để đặt /usr/local/git/bintrước /usr/bintrong $ PATH hoặc chỉnh sửa /etc/pathsvà chèn/usr/local/git/bin làm mục nhập đầu tiên.

Nó có thể giúp ai đó ít nhất thay đổi thứ tự trong / etc / path làm việc cho tôi.



6

Tôi đã sử dụng sau đây để nâng cấp git trên mac.

hansi$ brew install git 

hansi$ git --version 
git version 2.19.0


hansi$ brew install git
Warning: git 2.25.1 is already installed, it's just not linked
You can use `brew link git` to link this version.

hansi$ brew link git 
Linking /usr/local/Cellar/git/2.25.1... 
Error: 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

To list all files that would be deleted:
  brew link --overwrite --dry-run git

hansi$ brew link --overwrite git 
Linking /usr/local/Cellar/git/2.25.1... 205 symlinks created


hansi$ git --version
git version 2.25.1

trong trường hợp của tôi, tôi đã cài đặt git và tôi đã cài đặt lại bằng homebrew đã tải xuống phiên bản mới hơn, nhưng nó không được liên kết chính xác. Tôi đã kết thúc cần thiết để hủy liên kết thủ công, sau đó tải lại sau đó nó hoạt động. Tôi cũng cần mở lại phiên cuối của mình để nó tìm thấy phiên bản mới thay vì phiên bản cũ / hệ thống: brew unlink git && brew link git && source ~/.bashrc
FireDragon

5

cách đơn giản nhất mà tôi tìm thấy cho đến nay là từ trang web chính thức của git. Nó chỉ tính toán phụ thuộc và tải xuống tất cả các thư viện / công cụ cần thiết

http://git-scm.com/book/en/Getting-Started-Installing-Git

Cách chính khác là cài đặt Git qua MacPorts ( http://www.macports.org ). Nếu bạn đã cài đặt MacPorts, hãy cài đặt Git qua

$ sudo port cài đặt git-core + svn + doc + bash_completion + gitweb


2

Để giữ cả hai phiên bản, tôi chỉ thay đổi giá trị của biến môi trường PATH bằng cách đặt đường dẫn git của phiên bản mới "/ usr / local / git / bin /" ở đầu, nó buộc phải sử dụng phiên bản mới nhất:

$ echo $ PATH

/ usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin: / usr / local / git / bin /

$ git - chuyển đổi

phiên bản git 2.4.9 (Apple Git-60)

giá trị ban đầu: / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin: / usr / local / git / bin /

giá trị mới: / usr / local / git / bin / : / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin

$ export PATH = / usr / local / git / bin /: / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin

$ git - chuyển đổi

phiên bản git 2.13.0


1

Không có Homebrew

  1. Sử dụng trình cài đặt từ trang web của git.
  2. Cập nhật ~/.bash_profiletập tin của bạn .Lưu ý lệnh này khác với câu trả lời của kmikael bởi những gì nó đặt trong tệp:
    • Lệnh khác: export PATH=/usr/local/git/bin:/usr/local/sbin/:[and so on]
    • Lệnh dưới đây: export PATH="/usr/local/git/bin:/usr/local/sbin:$PATH"
    • Sử dụng bất cứ cái nào bạn thích.

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

  1. Nếu bạn đang sử dụng Xcode, bạn sẽ cần thêm một số liên kết tượng trưng .
    • Thí dụ: ln -s /opt/local/bin/git /usr/bin/git
  2. Khởi động lại thiết bị đầu cuối.
    • which git nên nói thư mục trong README.txt tập tin từ dmg.
    • git --version nên nói phiên bản cập nhật.
    • echo $PATH nên bắt đầu với /usr/local/git/bin:/usr/local/sbin:

0

Tôi không muốn thay đổi hệ thống phân cấp đường dẫn, mà thay vào đó là đối phó với git một cách cụ thể ... biết rằng tôi sẽ không bao giờ sử dụng git cũ để làm những gì git mới sẽ quản lý . Đây là một giải pháp vũ phu.

LƯU Ý: Tôi đã cài đặt XCode trên Yosemite (10.10.2) trước tiên .

Sau đó tôi đã cài đặt từ nhị phân có sẵn trên git-scm.com .

$ which git
/usr/bin/git
$ cd /usr/bin
$ sudo ln -sf /usr/local/git/bin/git
$ sudo ln -sf /usr/local/git/bin/git-credential-osxkeychain
$ sudo ln -sf /usr/local/git/bin/git-cvsserver
$ sudo ln -sf /usr/local/git/bin/git-receive-pack
$ sudo ln -sf /usr/local/git/bin/git-shell
$ sudo ln -sf /usr/local/git/bin/git-upload-archive
$ sudo ln -sf /usr/local/git/bin/git-upload-pack
$ ls -la
(you should see your new symlinks)

0

Tôi đã làm nó theo cách này:

  1. Mở ứng dụng GitHub được cài đặt trên Mac
  2. Nhấp vào tab Nâng cao → Cài đặt công cụ dòng lệnh
  3. Khi bạn nhận được thông báo rằng tất cả các lệnh đã được cài đặt, hãy đóng thiết bị đầu cuối của bạn và mở lại nó.
  4. Bây giờ kiểm tra git --version, nó sẽ cung cấp cho bạn phiên bản mới nhất.

0

Bạn cần điều chỉnh đường dẫn shell, đường dẫn sẽ được đặt trong .bashrc hoặc .bash_profile trong thư mục chính của bạn, nhiều khả năng .bash_profile

Vì vậy, hãy thêm vào đường dẫn tương tự như bên dưới và giữ những gì bạn đã có trong đường dẫn, mỗi phân đoạn được phân tách bằng dấu hai chấm:

xuất PATH = "/ usr / local / bin: / usr / bin / git: / usr / bin: / usr / local / sbin: $ PATH"


0

Phiên bản mới nhất không có sẵn dưới dạng nhị phân cho mac trên git-scm.com, vì vậy tôi đã cài đặt từ nguồn. Tôi đã thiếu một gói cần thiết để bản địa hóa và được thêm vào NO_GETTEXT=trueđể cài đặt mà không cần bản địa hóa.

git clone https://github.com/git/git.git
cd git
make NO_GETTEXT=true
make NO_GETTEXT=true install

Cái này được cài đặt gittheo ~/binđó sau đó tôi phải thêm vào đầu PATHbiến của mình .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.