/ usr / bin / git มาจากไหน?


24

ฉันมีปัญหาเล็กน้อย เมื่อถึงจุดหนึ่งฉันใช้คอมไพล์ แต่ฉันจำไม่ได้ว่าติดตั้งโดยค่าเริ่มต้นใน Lion

นี่คือเวอร์ชั่นและเส้นทางของ git:

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

ฉันยังมีคอมไพล์ใหม่ใน / usr / local / git

ฉันต้องการใช้เวอร์ชั่นที่ใหม่กว่า แต่ฉันไม่รู้ว่าถ้าลบเวอร์ชันเก่า (/ usr / bin มีความสำคัญกว่าในตัวแปรพา ธ ) ฉันจะทำอะไรบางอย่างผิดพลาด

วิธีที่เหมาะสมในการแก้ไขข้อขัดแย้งนี้คืออะไร?


9
git ถูกติดตั้งโดย Xcode ฉันไม่สามารถบอกคุณได้ว่ามันจะทำลายอะไร ในรองเท้าของคุณฉันจะเปลี่ยนชื่อในกรณีที่ฉันต้องนำมันกลับมาในภายหลัง
Steven Fisher

อ่า.. เข้าใจว่าสิ่งที่ฉันจะทำก็แค่เปลี่ยนชื่อ installt o git2 ใหม่หรืออะไรซักอย่างแล้วใช้อย่างนั้น
cromestant

ฉันหมายถึงเปลี่ยนชื่อเก่าแทนที่จะลบออก ด้วยวิธีนี้หากคุณมีปัญหาคุณสามารถเปลี่ยนชื่อมันกลับมาได้
Steven Fisher

1
@StevenFisher คุณควรตอบคำถามนี้ :)
เอียนซี

ตกลง. ฉันหวังว่าบางคนจะได้คำตอบที่แท้จริงที่ไม่มี "ฉันไม่รู้!" ในนั้น. :)
Steven Fisher

คำตอบ:


26

git ถูกติดตั้งโดย Xcode ฉันสงสัยว่าคุณจะมีปัญหาใด ๆ หากคุณแทนที่ แต่ฉันไม่สามารถให้คำตอบที่ชัดเจนกับคุณ ...

  1. สิ่งที่ฉันทำคือเปลี่ยนชื่อเก่า/usr/bin/gitเป็นgit_oldจากนั้นใช้เส้นทางของคุณเพื่อเลือกใหม่
  2. หากไม่ได้ทำงาน/usr/binย้ายใหม่ให้กับ ฉันสงสัยว่า Xcode เป็นเรื่องเกี่ยวกับคอมไพล์รุ่นใดที่ใช้อยู่
  3. หากยังไม่ได้ผลให้ย้ายgit_oldกลับไปที่/usr/bin/gitและใช้เส้นทางโดยตรงเปลี่ยนชื่อหรือนามแฝงสำหรับเส้นทางใหม่ของคุณ

ฉันสงสัยว่าคุณจะต้องผ่าน # 1 ข้างต้นแม้ว่า นั่นควรจะเพียงพอ

แก้ไข: ฉันอ่านโพสต์ต้นฉบับของคุณไปข้างหลัง สิ่งแรกที่คุณควรทำคือตรวจสอบให้แน่ใจว่าเส้นทางของคุณมีไดเรกทอรี git ใหม่ก่อนไดเรกทอรีที่ประกอบด้วย git เก่า


3 ทางเลือก: ยืนยันว่าคนแรกทำงานได้ดี
Marius Butuc

9

คุณไม่จำเป็นต้องแฮ็คเวอร์ชันอื่น ๆ จนกว่าคุณจะมีพื้นที่ จำกัด จริงๆ แก้ไข. bash_profile ของคุณและตรวจสอบให้แน่ใจว่า / usr / local / bin เกิดขึ้นตรงหน้า / usr / bin ในตัวแปร PATH ของคุณ

โดยส่วนตัวแล้วฉันชอบที่จะใช้ชุดรูปแบบที่มีการกำหนดเส้นทางเครื่องมือและเส้นทางที่สร้างจากสิ่งเหล่านี้

GIT_HOME=/usr/local

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

ซึ่งหมายความว่าสิ่งใดก็ตามที่ค้นหาเครื่องมือที่ใช้ PATH จะพบรุ่นของ git ของคุณและสิ่งที่ "ต้อง" จริงๆต้องมีรุ่น / usr / bin ส่วนใหญ่จะมีเส้นทางที่เชื่อมต่ออย่างหนักและยังสามารถหาได้


6

ฉันมีปัญหาเดียวกัน: Git รุ่นเก่านั่นคือ Xcode ฉันพยายามติดตั้ง Git รุ่นใหม่จากhttp://git-scm.com/และอัปเดตbash_profileด้วย

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

จากนั้นโหลด bash ของคุณใหม่แล้วลอง git --version

ทำงานให้ฉัน :)


1

ในระบบของฉัน (10.7.3, Xcode 4.3.2) Xcode ของไม่ได้ติดตั้งในgit /usr/bin/gitXcode 4 ทั้งหมด (เช่นแอพทั้งหมดจาก App Store ฉันคิดว่า) อยู่ในกลุ่มแอป. /Applications/Xcode.app/Contents/Developer/usr/bin/gitโดยเฉพาะคอมไพล์อยู่ที่

ฉันใช้คอมไพล์ (ผ่าน Xcode) ตลอดเวลาและฉันไม่มี/usr/bin/gitที่นี่เลย ดังนั้นจึงไม่ได้เป็นส่วนหนึ่งของการติดตั้ง Lion ที่เป็นค่าเริ่มต้นหรืออย่างน้อยก็ไม่ใช่ที่ตำแหน่งนั้น

FWIW ซึ่งเป็นคอมไพล์ในชุด Xcode.app มีข้อความ--versionที่อ่านว่า:

git เวอร์ชั่น 1.7.7.5 (Apple Git-26)

ดังนั้นฉันพนันได้เลยว่า/usr/bin/gitการติดตั้งของคุณเป็นของคุณเองและการอัปเดตนั้นไม่สามารถทำลายอะไรได้

อีกทางหนึ่งคุณสามารถติดตั้ง Xcode (ฟรี!) และใส่/Applications/Xcode.app/Contents/Developer/usr/bin/$ PATH ของคุณ แต่มันมากเกินไปถ้าคุณต้องการคอมไพล์


ฉันมี xcode ด้วยดังนั้นฉันจึงมี git สามเวอร์ชันติดตั้งอยู่ในปัจจุบัน ... หาดีมาก!
cromestant

1
หากคุณไม่มี/usr/bin/gitคุณอาจไม่ได้ติดตั้ง Xcode "เครื่องมือบรรทัดคำสั่ง" ดูstackoverflow.com/q/9329243/152142
Justin M. Keyes

1

เคนถูกต้องในคอมไพล์นั้นมีให้ผ่านเส้นทาง Xcode.app เท่านั้น เมื่อฉันติดตั้ง Mountain Lion (10.8) ทันใดนั้นฉันก็มีคอมไพล์ใน / usr / bin / git ดังนั้นมันจึงเป็น Mountain Lion นอกจากนี้เท่าที่ฉันสามารถบอกได้ ...

ถึงแม้ว่า ... ฉันได้ติดตั้งไปแล้วสองสามอย่างตั้งแต่นั้นมาและฉันก็ไม่แน่ใจว่ามันจะขึ้นอยู่กับสิ่งอื่นใด


0

ฉันไม่รู้จริง ๆ ฉันคิดว่าฉันยังไม่ได้ติดตั้ง git หรือ XCode สำหรับ momment แต่หลังจากติดตั้ง homebrew และรันbrew doctorก็บอกว่า:

$ 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

แล้วทำไมล่ะ ฉันเพิ่งติดตั้งเครื่องมือบรรทัดคำสั่งสำหรับ XCode (ภูเขาสิงโต) และฉันคิดว่าอันนี้เป็นคนที่ติดตั้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.