Trường hợp đã / usr / bin / git đến từ đâu?


24

Tôi có một vấn đề nhỏ. Tại một số điểm tôi đã sử dụng git nhưng tôi không nhớ nếu nó được cài đặt mặc định trên Lion.

Đây là phiên bản và đường dẫn của git:

$ git --version
git version 1.7.5.4
$ which git
/usr/bin/git

Tôi cũng có một git mới hơn trong / usr / local / git

Tôi muốn sử dụng phiên bản mới hơn nhưng tôi không biết nếu loại bỏ phiên bản cũ (/ usr / bin có quyền ưu tiên trong biến đường dẫn) tôi sẽ phá vỡ thứ gì đó.

Cách thích hợp để giải quyết xung đột này là gì?


9
git được cài đặt bởi Xcode. Tôi không thể nói với bạn nếu nó sẽ phá vỡ bất cứ điều gì, mặc dù. Trong đôi giày của bạn, tôi sẽ đổi tên nó trong trường hợp tôi cần đặt lại sau.
Steven Fisher

ah ok..Vâng những gì tôi sẽ làm chỉ là đổi tên cài đặt mới o git2 hoặc một cái gì đó và sử dụng nó như thế.
nhà ở

Tôi có nghĩa là đổi tên cũ, thay vì loại bỏ nó. Theo cách đó, nếu bạn gặp sự cố, bạn có thể đổi tên lại.
Steven Fisher

1
@StevenFisher bạn nên làm cho câu trả lời. :)
Ian C.

ĐƯỢC. Tôi đã hy vọng ai đó sẽ có câu trả lời thực sự mà không có câu "Tôi không biết!" trong đó. :)
Steven Fisher

Câu trả lời:


26

git được cài đặt bởi Xcode. Tôi nghi ngờ bạn sẽ có bất kỳ vấn đề gì nếu bạn thay thế nó, nhưng tôi không thể đưa ra câu trả lời dứt khoát cho điều đó.

  1. Những gì tôi sẽ làm là đổi tên cũ /usr/bin/gitthành git_old, sau đó dựa vào đường dẫn của bạn để chọn cái mới.
  2. Nếu không được , hãy chuyển cái mới sang /usr/bin. Tôi nghi ngờ Xcode rất kén chọn phiên bản git nào đang sử dụng.
  3. Nếu vẫn không được , hãy git_oldquay lại /usr/bin/gitvà sử dụng đường dẫn trực tiếp, đổi tên hoặc bí danh cho cái mới của bạn.

Tuy nhiên, tôi nghi ngờ bạn sẽ phải vượt qua # 1 ở trên. Thế là đủ.

Chỉnh sửa: Tôi đọc bài viết gốc của bạn ngược. Điều đầu tiên bạn nên làm là đảm bảo đường dẫn của bạn bao gồm thư mục git mới TRƯỚC KHI thư mục chứa git cũ.


3 lựa chọn thay thế: xác nhận rằng cái đầu tiên hoạt động tốt.
Marius Butuc

9

Bạn không cần phải hack phiên bản khác trừ khi bạn thực sự kín về không gian. Chỉnh sửa .bash_profile của bạn và đảm bảo rằng / usr / local / bin xuất hiện trước / usr / bin trong biến PATH của bạn

Cá nhân tôi thích áp dụng một lược đồ với các đường dẫn công cụ được xác định và đường dẫn được xây dựng từ các ví dụ này

GIT_HOME=/usr/local

PATH=${GIT_HOME}/bin:${PATH};export PATH
MANPATH=${GIT_HOME}/share/man:${MANPATH};export MANPATH

Điều này có nghĩa là mọi thứ tìm kiếm công cụ bằng PATH sẽ tìm thấy phiên bản git của bạn và bất kỳ thứ gì "thực sự phải có" phiên bản / usr / bin rất có thể sẽ có đường dẫn cứng đó và vẫn có thể tìm thấy nó


6

Tôi gặp vấn đề tương tự: một phiên bản Git cũ là phiên bản Xcode. Tôi đã thử cài đặt phiên bản Git mới từ http://git-scm.com/ và cập nhật bash_profilevới

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

Sau đó tải lại bash của bạn và thử git --version

Đã làm cho tôi :)


1

Trên hệ thống của tôi (10.7.3, Xcode 4.3.2) Xcode gitkhông được cài đặt /usr/bin/git. Tất cả Xcode 4 (giống như tất cả các ứng dụng từ App Store, tôi nghĩ vậy) đều nằm trong gói .app của nó. Cụ thể, git của nó là tại /Applications/Xcode.app/Contents/Developer/usr/bin/git.

Tôi sử dụng git (thông qua Xcode) mọi lúc và tôi không có /usr/bin/gitở đây cả. Vì vậy, nó không phải là một phần của cài đặt Lion mặc định, hoặc ít nhất, không phải ở vị trí đó.

FWIW, git trong gói Xcode.app có --versiondòng chữ:

phiên bản git 1.7.7.5 (Apple Git-26)

vì vậy tôi cá /usr/bin/gitlà cài đặt của riêng bạn và việc cập nhật nó không ảnh hưởng gì.

Ngoài ra, bạn có thể cài đặt Xcode (miễn phí!) Và đặt /Applications/Xcode.app/Contents/Developer/usr/bin/$ PATH của bạn, nhưng điều đó quá mức nếu bạn chỉ muốn git.


Tôi cũng có xcode, vì vậy tôi có ba phiên bản git hiện đang được cài đặt ... tìm thấy tốt đẹp!
vào

1
nếu bạn không có /usr/bin/git, có lẽ bạn đã không cài đặt Xcode "Công cụ dòng lệnh". xem stackoverflow.com/q/9329243/152142
Justin M. Keyes

1

Ken là chính xác trong đó git chỉ có sẵn thông qua đường dẫn Xcode.app. Khi tôi cài đặt Mountain Lion (10.8), đột nhiên tôi có git in / usr / bin / git, vì vậy đó là một bổ sung Mountain Lion theo như tôi có thể nói ...

Mặc dù ... tôi đã cài đặt khá nhiều thứ kể từ đó và không hoàn toàn chắc chắn rằng đó không phải là sự phụ thuộc cho thứ khác.


0

Tôi thực sự không biết, tôi nghĩ rằng tôi đã không cài đặt git hoặc XCode cho việc làm mẹ nhưng sau khi cài đặt homebrew và chạy brew doctorthì nó báo:

$ brew doctor
Warning: /usr/bin occurs before /usr/local/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. The following tools exist at both paths:

    git
    git-cvsserver
    git-receive-pack
    git-shell
    git-upload-archive
    git-upload-pack

Consider setting your PATH so that /usr/local/bin
occurs before /usr/bin. Here is a one-liner:
    echo export PATH="/usr/local/bin:$PATH" >> ~/.bash_profile

Vậy tại sao? Tôi vừa cài đặt Công cụ dòng lệnh cho XCode (Lion núi) và tôi nghĩ rằng đây là người đã cài đặt nó.

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.