ฉันได้ติดตั้ง git รุ่นล่าสุด (1.8.3) โดยใช้ homebrew แต่เมื่อฉันพิมพ์
git --version
ในเทอร์มินัลของฉันมันพิมพ์:
git version 1.7.10.2 (Apple Git-33)
ฉันควรทำอย่างไรเพื่อแทนที่ git เวอร์ชันเก่าด้วยใหม่
ฉันได้ติดตั้ง git รุ่นล่าสุด (1.8.3) โดยใช้ homebrew แต่เมื่อฉันพิมพ์
git --version
ในเทอร์มินัลของฉันมันพิมพ์:
git version 1.7.10.2 (Apple Git-33)
ฉันควรทำอย่างไรเพื่อแทนที่ git เวอร์ชันเก่าด้วยใหม่
คำตอบ:
ขอบคุณทุกคนสำหรับคำตอบที่เป็นประโยชน์ ในกรณีของฉันเพิ่ม
export PATH="/usr/local/bin:${PATH}"
ใน~/.bash_profile
ตามด้วย
source ~/.bash_profile
แก้ไขปัญหาสำหรับผู้ใช้ของฉัน
/usr/local/bin
ดังกล่าวข้างต้นใน/usr/bin
/etc/paths
brew doctor
เพื่อวิเคราะห์ปัญหา
/etc/paths
ของการกำหนด การกำหนดเพียง "ส่งออก" อาจไม่เพียงพอหาก/usr/bin
มี "ลำดับความสำคัญ" มากกว่า/usr/local/bin
(จากการชง) ...
ตกลงฉันพร้อมที่จะจริงจังเกี่ยวกับ SCM
$ git --version
git version 1.9.5 (Apple Git-50.3)
ไม่นั่นไม่ใช่สิ่งที่ฉันต้องการ ฉัน <3 homebrew ดังนั้น:
$ brew install git
ทุกชุด?
$ git --version
git version 1.9.5 (Apple Git-50.3)
Doh! (รอยขีดข่วนหัว)
$ which git
/usr/bin/git
อ่าคอมไพล์ของ Apple อยู่ใน / usr / bin ดังนั้นมันจึงสำคัญกว่าภาษาฮีบรู จะทำอย่างไร?
(A) เพียงแค่เปลี่ยนชื่อไบนารีของ Apple
(B) ให้ผู้ที่จัดการโดย homebrew มาก่อน:
[แก้ไขเส้นทางการส่งออกเช่นใน ~ / .zshrc (oh-my-zsh + iTerm2 FTW! / tangent)]
[โดยเฉพาะ: ย้าย / usr / local / bin / git: ก่อน / usr / bin:]
... และ / หรือ (เช่นเพื่อให้การติดตั้งระบบโฮมบึ้มสิ่งที่มีความหมายกว้างกว่าและให้ความสำคัญกับเชลล์และผู้ใช้ทั้งหมด) แก้ไขไฟล์ / etc / path เช่นกัน [การย้าย / usr / local / bin ด้านบน / usr / bin ]
แต่สมมติว่าเป็นวิธีการบุกรุกที่ง่ายที่สุด / น้อยที่สุด:
$ sudo mv /usr/bin/git /usr/bin/git-apple
มันใช้งานได้หรือ
$ which git
/usr/local/bin/git
จนถึงตอนนี้ก็เป็นช่วงเวลาแห่งความจริง:
$ git --version
git version 2.2.1
w00t! :) เวลาไปอ่านhttp://git-scm.com ! :)
which git
ชี้ไป/usr/local/bin/git
แต่ก็ไม่ได้ผลสำหรับฉัน เพื่อแก้ปัญหานี้ฉันต้องถอนการติดตั้งแอพ GitHub Mac
sudo mv /usr/bin/git /usr/bin/git-apple mv: rename /usr/bin/git to /usr/bin/git-apple: Operation not permitted
เทคนิคทั้งหมดที่กล่าวถึงที่นี่ในหลายคำตอบนั้นไม่จำเป็นอีกต่อไปสำหรับ macOS Sierra & Mojave ด้วย Homebrew ล่าสุด ลืมและการปรับเปลี่ยนไปexport PATH="..."
~/.bash_profile
คุณก็ทำได้
brew install git
และคุณทำ
เพื่อยืนยันให้เปิดหน้าต่างเทอร์มินัล (!) ใหม่และพิมพ์
git --version
brew link --overwrite git
ทำงานให้ฉัน
เมื่อคุณติดตั้งคอมไพล์ล่าสุดผ่านทาง Brew ( brew install git
) แล้วให้รันหนึ่งซับ (ตามที่แนะนำbrew doctor
) หากยังไม่มี:
echo "export PATH=/usr/local/bin:$PATH" >> ~/.bash_profile
จากนั้นปิด Terminal แล้วเปิดใหม่อีกครั้ง (รีสตาร์ทเซสชัน bash ของคุณ) คุณต้องทำสิ่งนี้แม้ว่า PATH ของคุณจะถูกต้องแล้วเนื่องจาก ZSH และ Bash แคชเนื้อหาของ PATH (ดูเอกสารประกอบของคำสั่งในตัวhash
)
ที่ควรแก้ไขสิ่งต่าง ๆ อย่างรวดเร็วจริง ๆ
เมื่อคุณพิมพ์
git --version
ใน Terminal.app หรือคอนโซลความคิดเห็นของคุณสำหรับคำถามอื่นที่ระบุว่าเวอร์ชันที่ส่งคืนคือคอมไพล์ใน / usr / bin / git
หากคุณติดตั้ง Xcode 4.5 (และใหม่กว่า) แล้วพิมพ์
xcrun git --version
ใน Terminal.app หรือคอนโซลรุ่นที่ส่งคืนคือคอมไพล์ในชุดแอป Xcode
หากคุณใช้ Homebrew เพื่อติดตั้งและอัปเดต git ทางออกที่ง่ายที่สุดก็คือ
เปลี่ยนชื่อตำแหน่งเดิมด้วยการเปลี่ยนชื่อโดยใช้ mv ตัวอย่างเช่น
sudo mv / usr / bin / git / usr / bin / git-ORIGINAL
สร้างลิงค์นุ่มโดยใช้ 'ln -s' เพื่อไบนารี่ git ที่คุณติดตั้งด้วย Homebrew
โปรดทราบว่า MattDMo มีทางออกที่ดีกว่าในความคิดเห็น
/usr/bin
เพราะเป็นไปได้ว่าโปรแกรมอื่น ๆ ที่คุณไม่เคยรู้มาก่อนนั้นขึ้นอยู่กับความหลากหลายของเวอร์ชั่นที่เฉพาะเจาะจง ทางออกที่ง่ายที่สุดโดยไม่ต้องย้ายอะไรคือการเพิ่มตัวแปรสภาพแวดล้อม/usr/local/bin
ของคุณ$PATH
ก่อน/usr/bin
- IIRC, homebrew ติดตั้งเพื่อ/usr/local/bin
ฉันลองสิ่งนี้และมันก็ได้ผลสำหรับฉัน
brew link --overwrite git
คุณต้องเปลี่ยนชื่อคอมไพล์ดั้งเดิมโดย apple /usr/bin/
เพื่อเป็น git-org เพราะ/usr/bin
ปกติแล้วจะ/usr/local/bin
อยู่ในไดเรกทอรีพา ธ ของคุณ
ดังนั้น:
cd /usr/bin
sudo mv git git-org
และอย่าลืมลิงค์ git ชง
brew link git
นี่ถือว่า/usr/local/bin
อยู่ใน$PATH
ตัวแปรสภาพแวดล้อมของคุณ หากคุณยังมีปัญหาลองเรียกใช้
brew doctor
และแก้ไขปัญหาที่กล่าวถึงที่นั่น
/usr/local/bin
(ไดเรกทอรีการติดตั้งของ homebrew, IIRC) ไป$PATH
ข้างหน้า/usr/bin
แทนการล้อเล่นไปรอบ ๆ ด้วยการเปลี่ยนชื่อและสำรองข้อมูล ฯลฯ
ติดตั้งคอมไพล์ด้วย brew เรียกใช้สิ่งนี้
brew link --force git
which git
ปิดและเปิดสถานีเพื่อให้ทำงานได้
brew link --overwrite git
งานได้
หากคุณกำลังติดตั้ง git จาก git-scm.com โดยตรงและต้องการใช้ git ที่ดาวน์โหลดล่าสุดแทนที่จะเป็น git รุ่น apple (เก่า)
/usr/local/bin/git
git --version
ถ้ามันส่งคืน git เวอร์ชันเก่าของ Apple ให้ทำต่อไปด้านล่างcd ~
(เปลี่ยนไดเรกทอรีเป็นไดเรกทอรีบ้านของคุณ)vi .bashrc
i
(เพื่อแทรกข้อความในโปรแกรมแก้ไข vi)export PATH.......
ให้กด Enter ที่ด้านบนของการส่งออกและพิมพ์ต่อไปนี้: export PATH=/usr/local/:$PATH
(ให้ความระมัดระวังอย่างมากกับPATH
ตัวแปรอย่าทำอย่างอื่นมันจะทำให้เกิดปัญหาสำหรับระบบปฏิบัติการของคุณ) (หวังว่าจะติดตั้งคอมไพล์ใหม่/usr/local/git
):wq
(เพื่อบันทึก.bashrc
ไฟล์)git --version
(คุณจะเห็นเวอร์ชันใหม่)ขึ้นอยู่กับว่าคุณมาจากไหน Xcode นำเวอร์ชั่นมาใช้บางทีอาจเป็นเรื่องตรงไปตรงมาในเส้นทางของคุณ
อาจจะพิมพ์
which git
จะแสดงตำแหน่งเดิม
/usr/bin/git
...
ในการอัปเกรดสิ่งใดก็ตามโดยใช้ Homebrew บน OSX ซึ่งเกี่ยวข้องกับการรวบรวมโดยใช้ gcc ตรวจสอบให้แน่ใจว่าคุณมีเครื่องมือบรรทัดคำสั่งที่อัปเดตจาก Xcode ใช่แล้วฉันรู้ดีว่ามันต้องซ่อนเครื่องมือทั้งระบบไว้ในการตั้งค่าของแอป
brew doctor
และแก้ไขอุปสรรคอื่น ๆ ทั้งหมดbrew upgrade
เพื่ออัพเกรดแพ็คเกจทั้งหมดในครั้งเดียว