Làm cách nào để sử dụng git Homebrew được cài đặt trên Mac?


115

Tôi đã cài đặt phiên bản mới nhất của git (1.8.3) bằng homebrew nhưng khi tôi gõ

git --version

trong thiết bị đầu cuối của tôi, nó in:

git version 1.7.10.2 (Apple Git-33)

Tôi nên làm gì để thay thế phiên bản cũ của git bằng phiên bản mới?


2
Bạn có một vài câu trả lời hay - vì vậy tôi muốn bình luận về câu hỏi. Bạn đang tìm kiếm các hướng dẫn rõ ràng để cài đặt git từ nguồn từ homebrew hoặc máy khách GUI hoặc chỉ xác nhận rằng OS X gói một số phiên bản git với HĐH lõi? opensource.apple.com/source/Git (FWIW - Git mới nhất tôi thấy gói Apple cho đến nay là 1.7.12.4 đến từ Git-37)
bmike

Câu trả lời:


105

Cảm ơn mọi người vì câu trả lời hữu ích. Trong trường hợp của tôi thêm

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

trong ~/.bash_profiletiếp theo

source ~/.bash_profile

giải quyết vấn đề cho người dùng của tôi.


17
Nếu bạn muốn thay đổi dai dẳng trên người dùng, bạn có thể di chuyển /usr/local/bintrên /usr/bintrong /etc/paths.
kevin

3
Đây là giải pháp được đề xuất bởi chính Homebrew khi chạy brew doctorđể chẩn đoán sự cố
VoxPelli

1
câu trả lời này cần được cập nhật với giải pháp định nghĩa KevinT đề xuất /etc/paths. Chỉ xác định "xuất khẩu" có thể là không đủ, nếu /usr/binđã "ưu tiên" hơn /usr/local/bin(từ bia) ...
emgsilva

8
Nhớ khởi động lại thiết bị đầu cuối! Không xảy ra với tôi cho đến khi tôi thấy bình luận của Juan Diego Gonzales bên dưới
Souleiman

2
@Souleiman: Khởi động lại là không cần thiết. source ~/.bash_profilesẽ đọc lại mà. Khởi động lại có lẽ nhanh hơn / dễ dàng hơn. :)

43

Ok, tôi đã sẵn sàng để nghiêm túc về scm.

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

Không, đó không phải là điều tôi muốn. Tôi <3 homebrew, vì vậy:

$ brew install git

Tất cả các thiết lập?

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

Đừng! (gãi đầu)

$ which git
/usr/bin/git

À, git của Apple nằm trong / usr / bin, vì vậy nó vấp phải cái homebrew. Phải làm sao

(A) Chỉ cần đổi tên nhị phân của Apple

(B) Hãy ưu tiên quản lý homebrew:

[chỉnh sửa xuất PATH, ví dụ: trong ~ / .zshrc (oh-my-zsh + iTerm2 FTW! / tangent)]

[cụ thể: di chuyển / usr / local / bin / git: before / usr / bin:]

... và / hoặc (vd ]

Nhưng giả sử chỉ là cách tiếp cận đơn giản / ít xâm lấn nhất:

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

Nó có hoạt động không?

$ which git
/usr/local/bin/git

Cho đến nay rất tốt, bây giờ là thời điểm của sự thật:

$ git --version
git version 2.2.1

w00t! :) Thời gian để đọc http://git-scm.com ! :)


PS Liên quan đến nhận xét về rủi ro chỉnh sửa / usr / bin: IMHO đó là NBD. (Tho tôi rất thích sugg của người du mục toàn cầu. Làm "sudo ln -s / usr / local / bin / git / usr / bin / git" ... đảm bảo rằng mọi thứ gọi "/ usr / bin / git" rõ ràng sẽ nhận được Công cụ quản lý bia của bạn. Nhưng tôi thực hiện, cài đặt git ngụ ý rằng bạn đang sở hữu git trên hệ thống của mình. Lo lắng về các quy trình không xác định khi sử dụng phiên bản git cũ, thay thế, có thể bị thất lạc. Tôi khuyên bạn nên cập nhật w / w. phiên bản git (để bảo mật, không chỉ là các tính năng) và tự quản lý nó. Homebrew làm cho việc này trở nên dễ dàng. /$0.02
cweekly

Điều này không làm việc cho tôi, để hoàn tác nó, chỉ cần làm: sudo mv / usr / bin / git-apple / usr / bin / git. Bình luận của Juan Diego Gonzales đã làm việc. (về cơ bản, làm theo câu trả lời được chấp nhận sau đó khởi động lại thiết bị đầu cuối).
Souleiman

Ngay cả khi which gitchỉ vào /usr/local/bin/git, điều này không làm việc cho tôi. Để giải quyết vấn đề này, tôi đã phải gỡ cài đặt ứng dụng GitHub Mac.
Bến

2
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
Vladislav Rastrusny

Ngày nay, có vẻ như homebrew đặt mình ở "mặt trận" của PATH nên hy vọng không còn cần thiết nữa :)
rogerdpack

32

Tình trạng 2019

Tất cả các thủ thuật được đề cập ở đây trong một số câu trả lời không còn cần thiết nữa trên macOS Sierra & Mojave với Homebrew mới nhất. Quên export PATH="..."và sửa đổi để ~/.bash_profile.

Bạn chỉ cần làm

brew install git

và bạn đã hoàn thành

Để xác nhận, hãy mở một cửa sổ đầu cuối (!) Mới và gõ

git --version

16
Tôi nghĩ điều này đúng, nhưng bạn cần mở một thiết bị đầu cuối mới hoặc thay đổi không được chọn
robjwilkins

Điều này không làm việc cho tôi không may.
rsp1984

2
Điều này làm việc cho tôi trên Mojave. Tôi đã phải mở một thiết bị đầu cuối mới.
Craig Otis

2
brew link --overwrite gitlàm việc cho tôi
wickdninja

9

Khi bạn đã cài đặt git mới nhất qua brew ( brew install git), hãy chạy phần mềm lót này (như được đề xuất bởi brew doctor) nếu nó chưa có ở đó:

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

Sau đó thoát Terminal và mở lại (khởi động lại phiên bash của bạn). Bạn cần phải làm điều này ngay cả khi PATH của bạn đã chính xác, vì ZSH và Bash lưu trữ nội dung của PATH (xem tài liệu về lệnh tích hợp hash).

Điều đó sẽ sửa chữa mọi thứ thực sự nhanh chóng.


1
Điều này khác với câu trả lời được chấp nhận như thế nào?
dùng151019

6
Trong trường hợp của tôi, tôi không biết rằng tôi phải khởi động lại Terminal, vì vậy phần đó có thể giúp một số người. Là nhanh hơn so với chấp nhận vì một lót. Nếu đó là một cuộc thi tôi nghĩ câu trả lời của tôi bị đặt sai chỗ. Nếu không tôi nghĩ rằng nó đóng góp. (Hãy cho tôi biết nếu bạn muốn tôi thực hiện chỉnh sửa thay vì điều này).
Juan Diego Gonzales

Bạn thực hiện một lớp lót đó khi bạn cài đặt Homebrew
user151019

7
Tôi thấy câu trả lời này hữu ích. Khởi động lại thiết bị đầu cuối là một vấn đề không rõ ràng đối với nhiều người không quen thuộc với hoạt động của .bash_profile và một lời nhắc nhở nhẹ nhàng cho phần còn lại của chúng tôi.
Magne

@JuanDiegoGonzales Quan sát tuyệt vời! Tôi đã tự hỏi điều tương tự chính xác sau khi tôi cài đặt git và không biết tại sao. Sau gợi ý về bộ đệm , tôi đã nghiên cứu thêm một chút: unix.stackexchange.com/q/5609/52921
kstratis 7/12/2015

4

Khi bạn gõ

git --version

trong Terminal.app hoặc bảng điều khiển, nhận xét của bạn về một câu hỏi khác cho biết phiên bản mà nó trả về là git in / usr / bin / git

Nếu bạn đã cài đặt Xcode 4.5 (và mới hơn) và nhập

xcrun git --version

trong Terminal.app hoặc console, phiên bản mà nó trả về là git trong gói ứng dụng Xcode.

Nếu bạn đang sử dụng Homebrew để cài đặt và cập nhật git, giải pháp đơn giản nhất là

  1. đảm bảo bạn có quyền quản trị vì bạn sẽ được yêu cầu nhập mật khẩu cho quản trị viên
  2. đổi tên vị trí ban đầu bằng cách đổi tên nó bằng mv. Ví dụ

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

  3. tạo một liên kết mềm bằng cách sử dụng 'ln -s' cho tệp nhị phân git mà bạn đã cài đặt với Homebrew.

Lưu ý rằng MattDMo có một giải pháp tốt hơn trong các ý kiến.


Điều này có an toàn 100% không? Nó sẽ phá vỡ bất cứ điều gì liên quan đến mac?
Levani

Nếu bạn làm theo các bước được phác thảo, giải pháp sẽ không phá vỡ bất cứ thứ gì được cài đặt sẵn vì những thực thi git đó không bị xóa. Đây là lý do tại sao ở bước 2, bạn nên đổi tên ban đầu / usr / bin / git của mình thành ví dụ như /usr/bin/git.BACKUP
du mục toàn cầu

10
Xin đừng làm điều này - bạn thực sự không nên loay hoay /usr/bin, vì có thể các chương trình khác mà bạn thậm chí không biết về việc phụ thuộc vào những điều mơ hồ liên quan đến một phiên bản cụ thể. Giải pháp đơn giản nhất, không cần di chuyển bất cứ thứ gì, là thêm /usr/local/binvào $PATHbiến môi trường của bạn trước /usr/bin- IIRC, homebrew cài đặt vào/usr/local/bin
MattDMo

Cảm ơn @MattDMo, đó dường như là cách tiếp cận tốt nhất trong trường hợp này.
Levani

2

Tôi đã thử điều này và nó làm việc cho tôi.

brew link --overwrite git

Làm việc cho tôi trên Mojave (10.14.4)
tiêu

1

Bạn phải đổi tên git ban đầu của apple /usr/bin/thành ví dụ git-org vì /usr/binthông thường trước đây /usr/local/bintrong thư mục đường dẫn của bạn có công cụ pha chế.

Vì thế:

cd /usr/bin
sudo mv git git-org

và đừng quên liên kết bia git

brew link git

Điều này giả định rằng đó /usr/local/binlà trong $PATHbiến môi trường của bạn . Nếu bạn vẫn có vấn đề hãy thử chạy

brew doctor 

và khắc phục các vấn đề được đề cập ở đó.


3
Không đổi tên hoặc chnage những thứ trong / usr / bin vì nó có thể phá vỡ các thiết bị của Apple và chúng sẽ bị phá hỏng khi bạn thực hiện cập nhật hệ thống hoặc XCode. sử dụng đường dẫn được thiết kế cho,
user151019

@Mark bạn có một điểm. Nhưng tôi không tin bạn sẽ gặp rắc rối nếu bạn chỉ thay đổi git trong / usr / bin. Đối với tôi nó đang làm việc trong vài tháng.
Pfitz

Tôi đồng ý rằng việc thay đổi mọi thứ trong / usr / bin là tin xấu, nhưng tôi không thể nhớ OS X thực sự sử dụng git, vì vậy tác hại có thể có rất nhỏ và chỉ liên quan đến hệ thống "sạch" phù hợp với biên lai. Tác hại sẽ là một bản cập nhật cho OS X có thể thay thế git mới bằng phiên bản cũ hơn, do đó, thông thường để xác định vị trí nhị phân mới bên ngoài vị trí đường dẫn hệ thống.
bmike

3
Tôi nghĩ rằng nó sẽ được dễ dàng hơn nhiều để thêm /usr/local/bin(Homebrew của thư mục cài đặt, IIRC) cho $PATHtrước /usr/binthay vì mucking xung quanh với việc đổi tên và sao lưu, vv
MattDMo

1

Cài đặt git với brew, chạy này.

brew link --force git

Đóng và mở lại thiết bị đầu cuối để chạy which git.


1
Làm thế nào mà thay đổi đường dẫn mặc định?
user151019

Điều này làm việc cho tôi để ghi đè git của xcode.
surjikal

Tôi đã gặp lỗi khi chạy cái này nhưng brew link --overwrite gitđã hoạt động
wickdninja

0

Nếu bạn đang cài đặt git từ git-scm.com trực tiếp và muốn sử dụng git được tải xuống mới nhất thay vì phiên bản git của apple (cũ).

  1. Cài đặt git từ git-scm.com
  2. Rất có thể git mới sẽ được cài đặt trong /usr/local/bin/git
  3. Hãy thử git --version, nếu nó trả về phiên bản git cũ của Apple thì hãy tiến hành bên dưới
  4. cd ~ (thay đổi thư mục vào thư mục nhà của bạn)
  5. thể loại vi .bashrc
  6. Sử dụng i(để chèn văn bản trong trình soạn thảo vi)
  7. Nếu bạn tìm thấy một dòng với export PATH......., nhấn enter trên đầu xuất và nhập như sau: export PATH=/usr/local/:$PATH(Hãy hết sức thận trọng với PATHbiến không làm rối nó nếu không nó sẽ gây ra sự cố cho hệ điều hành của bạn) (hy vọng nên cài đặt git mới /usr/local/git)
  8. Nhấn esc
  9. Nhập :wq(để lưu .bashrctệp)
  10. Thoát khỏi thiết bị đầu cuối và bắt đầu thiết bị đầu cuối mới
  11. Bây giờ hãy thử git --version(bạn sẽ thấy phiên bản mới)

-1

Nó phụ thuộc vào nơi git của bạn đến từ đâu. Xcode mang đến một phiên bản chẳng hạn, có thể đó là trả trước trong đường dẫn của bạn.

Có lẽ đang gõ

which git

sẽ chỉ ra nơi cũ là.


nó ở /usr/bin/git...
Levani

2
Trông giống như hai cài đặt. Tôi nghĩ rằng phiên bản git bình thường (có thể tải xuống) chuyển sang / usr / local / git / ... Sau đó, đó là một câu hỏi về việc thêm nó vào đường dẫn hoặc xóa cái khác (hoặc cả hai)
Nicholaz

-2

Để nâng cấp mọi thứ bằng Homebrew trên OSX liên quan đến việc biên dịch bằng gcc, hãy đảm bảo bạn đã cập nhật Công cụ dòng lệnh từ Xcode, vâng, tôi biết rằng nó phải ẩn một công cụ toàn hệ thống trong các tùy chọn của ứng dụng.

Các bước

  1. Truy cập Xcode.app -> Tùy chọn -> Tải xuống
  2. Cập nhật (hoặc cài đặt) Công cụ dòng lệnh
  3. Chạy brew doctorvà sửa tất cả các chướng ngại vật khác
  4. Chạy brew upgradeđể nâng cấp tất cả các gói cùng một lúc
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.