จะอัพเกรด Git เป็น MacOS รุ่นล่าสุดได้อย่างไร?


165

ฉันเพิ่งซื้อ Mac ใหม่พร้อมกับ OS X Lion และฉันได้ตรวจสอบใน Terminal ว่ามีการติดตั้ง git รุ่นใดเป็นค่าเริ่มต้น ฉันได้รับคำตอบ

git --version
> git version 1.7.5.4

ฉันต้องการอัพเกรด git เป็นรุ่นล่าสุด 1.7.8.3 ดังนั้นฉันจึงดาวน์โหลดตัวติดตั้ง dmg "git-1.7.8.3-intel-universal-snow-leopard.dmg" แล้วจึงเปิดตัว

หลังจากการติดตั้งเทอร์มินัลยังบอกว่ารุ่น 1.7.5.4 ผมทำอะไรผิดหรือเปล่า?


4
พิมพ์which gitเพื่อดูว่าไบนารีอยู่ที่ไหน นั่นเป็นสถานที่เดียวกันกับที่คุณติดตั้งใหม่หรือไม่?
เกร็กฮิวกิล

4
มันบอกว่า/usr/bin/gitสำหรับ 1.7.5.4 แต่ฉันจะรู้ได้อย่างไรว่า DMG ติดตั้งรุ่นใหม่หรือไม่ เหตุใดจึงไม่อัปเกรด / เขียนทับรุ่นก่อนหน้าโดยอัตโนมัติ ถ้าฉันต้องการใช้อันใหม่ฉันจะเชื่อมgitคำสั่งไปยังเวอร์ชั่นใหม่ได้อย่างไร? (ขอบคุณสำหรับคำตอบที่รวดเร็วจริงๆ!)
Nicolas Renon

1
บน mac ของฉัน (ระบบปฏิบัติการ 10.6.8) git เก่า 1.7.5.4 อยู่ใน / usr / bin / git ขณะที่ตัวติดตั้ง git ใหม่ 1.7.11.3 ทำให้ git เป็น / usr / local /
miker

ฉันสงสัยว่าsuperuser.com/a/580611/74576เป็นวิธีการที่ดีหรือไม่ ฉันหวังว่าฉันจะสามารถหาคำสั่งได้
Ryan

ฉันป้อนรายการเป็น. bash_profile แทนที่จะเป็น. bashrc และทำงานได้ ฉันคิดว่าถ้าเทอร์มินัลของคุณกำลังทำงานเป็น "Default Login Shell" ก็จะเกิดขึ้น
Swapnil Chincholkar

คำตอบ:


58

มันอาจจะดีกว่าถ้าคุณเพิ่ม:

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

ไปยังไฟล์ชื่อ. bashrc ในโฟลเดอร์บ้านของคุณ วิธี/usr/local/git/binนี้จะพบซอฟต์แวร์อื่นที่คุณติดตั้งด้วยก่อน

สำหรับวิธีง่ายๆในการพิมพ์เพียงแค่นี้:

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

เข้าไปใน Terminal และมันจะทำเพื่อคุณ


1
เช่นเดียวกับ README.txt ที่กล่าวว่ามีการติดตั้ง git ให้กับ / usr / local / git
Bananaaus

18
ทิปที่มีประโยชน์ของ kmikael เหมาะสำหรับทุบตีเท่านั้น (หากต้องการเปลี่ยนแปลงแม็คเริ่มต้นเปลือกปลดล็อคบัญชีหรือ "ผู้ใช้และกลุ่ม" หน้าต่างการตั้งค่าของระบบบัญชีควบคุมคลิกสำหรับ "ตัวเลือกขั้นสูง".) ข้อเสนอแนะการใช้ bash_profile แทน bashrc เช่นecho 'export PATH="/usr/local/git/bin:/usr/local/sbin:~/bin:$PATH"' >> ~/.bash_profileที่moncefbelyamani.com การสนทนาว่าจะเพิ่ม. bash_profile หรือ. bashrc หรือไม่ที่superuser.com
miker

คุณใช้gitอะไรในการติดตั้ง ฉันเพิ่งตรวจสอบเวอร์ชั่นล่าสุดตัวติดตั้งอย่างเป็นทางการที่นี่ติดตั้งคอมไพล์/usr/local/git/bin/gitซึ่งหมายความว่าวิธีการข้างต้นยังคงใช้ได้กับ 10.8.4
kmikael

ขอบคุณ @miker มันใช้งานได้กับฉัน. bash_profile แต่ไม่ใช่. bashrc
adimauro

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

52

ง่ายถ้าคุณมี Homebrew อยู่แล้ว : ถ้าคุณติดตั้ง homebrew แล้วให้พิมพ์ดังต่อไปนี้:

brew install git

เมื่อติดตั้งแล้วให้พิมพ์สองบรรทัดต่อไปนี้ซึ่งจะกำหนดเส้นทางของเราไปที่ distro git ท้องถิ่นแทน Apple หนึ่ง

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

หากคุณไม่มีหน้าแรกให้ทำตามขั้นตอนเหล่านี้ ตรวจสอบเวอร์ชั่น

$ git --version

สำรอง (หรือลบ) Apple git (ไม่จำเป็น)

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

ติดตั้ง Homebrew หากคุณไม่มี

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

หรืออัปเดตหากคุณมีอยู่แล้ว

$ brew update && brew upgrade

ติดตั้ง Git ด้วย Homebrew

$ brew install git

ลิงก์สัญลักษณ์

$ brew link --force git

ปิด Terminal แล้วเปิดใหม่จากนั้นตรวจสอบเวอร์ชั่น

$ git --version

คุณควรเห็น ...

git version <latest version>

ดี! เราปลอดภัยแล้ว! และครั้งต่อไปที่คุณทำได้ ...

$ brew update && brew upgrade


10
เกี่ยวกับการsudo mv /usr/bin/git /usr/bin/git-appleเปลี่ยนชื่อระบบคอมไพล์จะไม่ทำงานบน MacOS El Capitan และต่อมาจนกว่าคุณจะปิดการใช้งานระบบป้องกันความสมบูรณ์ตามที่อธิบายไว้ที่นี่apple.stackexchange.com/a/248229/16290 ส่วนตัวผมเพียงแค่การปรับปรุงของฉันPATHเพื่อให้มาก่อน/usr/local/bin /usr/binวิธีนั้นคอมไพล์ของ Homebrew จะมีความสำคัญกว่าเสมอ (หลังจากปิดเทอร์มินัลแล้วเปิดใหม่) สำหรับช่องโหว่ความปลอดภัยของ git ในที่สุด Apple จะทำการอัพเดต git ที่รวมมาพร้อมกับโปรแกรมปรับปรุงความปลอดภัย ในขณะเดียวกันก็สามารถหลีกเลี่ยงการใช้คอมไพล์ในตัวโดยการกำหนดค่า PATH ตามที่อธิบายไว้
Nate Cook

16

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

  1. ฉันอัพเดทเส้นทางเทอร์มินัลโดยใช้คำสั่งส่งออกที่กล่าวถึงข้างต้น ทุกครั้งที่ฉันออกจากเทอร์มินัลและเริ่มต้นใหม่เมื่อฉันพิมพ์git --versionเทอร์มินัลมันก็ยังส่งคืนเวอร์ชั่นเก่ากว่า 1.8

  2. ฉันทำตามคำแนะนำ README.txt สำหรับการอัปเกรดเป็นเวอร์ชัน 2.0.1 ปัจจุบันที่มาพร้อมกับโปรแกรมติดตั้ง. dmg และเมื่อฉันรีสตาร์ทเครื่องก็ยังไม่ไป

  3. ฉันค้นหา / etc / path / folder ตามคำแนะนำข้างต้นและไดเรกทอรีที่ชื่อว่า "path" ไม่มีอยู่ใน Mac ของฉัน ฉันใช้ OS X Mavericks เวอร์ชั่น 10.9.4

  4. จากนั้นฉันจำได้ว่าฉันติดตั้งHomebrewบน Mac ของฉันและรันสิ่งต่อไปนี้

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

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


1
ฉันติดตั้งคอมไพล์แล้ว ดังนั้นเมื่อทำตามขั้นตอนสุดท้ายbrew install gitฉันได้รับข้อความแสดงข้อผิดพลาดและแนะนำให้ดำเนินการbrew upgrade gitคำสั่งแทน คุณเป็นผู้ชาย! ที่ไม่เพียงแค่เคล็ดลับ :)
ปัทโรส

15

ฉันเพิ่งอัพเกรด Git บนเครื่อง OS X เป็นรุ่นล่าสุด ผมไม่ได้ใช้เหมือนกัน.dmgที่คุณใช้ /usr/local/binแต่เมื่อฉันติดตั้งมันไบนารีถูกวางไว้ใน ตอนนี้ทางของฉันPATHถูกจัดไดเรกทอรีปรากฏขึ้นก่อน/usr/bin /usr/local/binดังนั้นสิ่งที่ฉันทำคือ:

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

สิ่งนี้จะย้ายโปรแกรมดั้งเดิมหลายรายการที่มีชื่อgit*ไปยังไดเรกทอรีย่อยใหม่ที่ป้องกันไม่ให้ออกไป หลังจากนั้นwhich gitแสดงให้เห็นว่าหนึ่งใน/usr/local/binพบ

ปรับเปลี่ยนขั้นตอนข้างต้นตามความจำเป็นเพื่อให้พอดีกับทุกที่ที่คุณติดตั้งไบนารีใหม่


2
ขอบคุณ! /usr/local/gitที่จริงไบนารีใหม่ถูกวางไว้ใน
Nicolas Renon

1
หมายเหตุ: ฉันต้องรีสตาร์ท Terminal เพื่อดู git ใหม่ ดูเหมือนชัดเจน แต่สับสนในตอนแรก
migg

15

หากใช้ homebrew คุณสามารถอัปเดตลิงก์ซิมโดยใช้

brew link --overwrite git

ฉันลองคำตอบทั้งหมดข้างบนอันนี้และนี่คือสิ่งที่ทำให้ฉันติดตั้ง git เวอร์ชั่นล่าสุด ทำงานbrew install gitได้ฉันรุ่นล่าสุด แต่มันไม่ได้ตั้ง symlink อย่างถูกต้อง การทำงานbrew link gitทำให้ฉันมีข้อผิดพลาดบอกว่ามันไม่สามารถ symlink git เพราะมันมีอยู่แล้ว ในที่สุดก็วิ่งbrew link --overwrite gitใส่เล็บไว้ในโลงศพดังนั้นตอนนี้git --versionแสดงว่าฉันเป็นรุ่นล่าสุดของ git
Gharbad The Weak

7

โปรแกรมติดตั้งจากโฮมเพจ git จะถูกติดตั้ง/usr/local/gitโดยค่าเริ่มต้น แต่ถ้าคุณติดตั้งXCode4/usr/binก็จะติดตั้งรุ่นคอมไพล์ใน เพื่อให้แน่ใจว่าคุณสามารถอัปเกรดจากเว็บไซต์และใช้เวอร์ชัน git ล่าสุดได้อย่างง่ายดายแก้ไขข้อมูลโปรไฟล์ของคุณเพื่อวาง/usr/local/git/binก่อนหน้า/usr/binใน$ PATHหรือแก้ไข/etc/pathsและแทรก/usr/local/git/binเป็นรายการแรก

มันอาจช่วยให้ใครบางคนอย่างน้อยเปลี่ยนคำสั่งใน/ etc / เส้นทางทำงานให้ฉัน



6

ฉันใช้สิ่งต่อไปนี้เพื่ออัพเกรด git บน 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

ในกรณีของฉันฉันได้ติดตั้งคอมไพล์แล้วและฉันติดตั้งอีกครั้งโดยใช้ homebrew ซึ่งดาวน์โหลดเวอร์ชันที่ใหม่กว่า แต่ลิงก์ไม่ถูกต้อง ฉันจำเป็นต้องยกเลิกการเชื่อมโยงด้วยตนเองจากนั้นลิงก์อีกครั้งจากนั้นจึงใช้งานได้ ฉันยังต้องเปิดเซสชันเทอร์มินัลอีกครั้งเพื่อหาเวอร์ชั่นใหม่แทนที่จะเป็นเวอร์ชั่นเก่า / ระบบ: brew unlink git && brew link git && source ~/.bashrc
FireDragon

5

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

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

อีกวิธีที่สำคัญคือการติดตั้ง Git ผ่าน MacPorts ( http://www.macports.org ) หากคุณติดตั้ง MacPorts ให้ติดตั้ง Git ผ่าน

$ sudo port ติดตั้ง git-core + svn + doc + bash_completion + gitweb


2

เพื่อที่จะรักษาทั้งสองเวอร์ชันฉันเพิ่งเปลี่ยนค่าของตัวแปรสภาพแวดล้อม PATH โดยการใส่พา ธ git ของเวอร์ชันใหม่ "/ usr / local / git / bin /" ที่จุดเริ่มต้นมันบังคับให้ใช้เวอร์ชันใหม่ล่าสุด:

$ echo $ PATH

/ usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin: / usr / local / คอมไพล์ / bin /

$ git - รุ่น

git เวอร์ชั่น 2.4.9 (Apple Git-60)

ค่าเดิม: / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin: / usr / local / git / bin /

ค่าใหม่: / 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 - รุ่น

git เวอร์ชั่น 2.13.0


1

ไม่มี Homebrew

  1. ใช้โปรแกรมติดตั้งจากเว็บไซต์ของ git
  2. อัปเดต~/.bash_profileไฟล์ของคุณ แจ้งให้ทราบคำสั่งนี้แตกต่างจากคำตอบของ kmikael จากสิ่งที่มันทำให้ในไฟล์:
    • คำสั่งอื่น ๆ : export PATH=/usr/local/git/bin:/usr/local/sbin/:[and so on]
    • คำสั่งด้านล่าง: export PATH="/usr/local/git/bin:/usr/local/sbin:$PATH"
    • ใช้อย่างใดอย่างหนึ่งที่คุณต้องการ

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

  1. หากคุณกำลังใช้ Xcode, คุณจะต้องเพิ่มการเชื่อมโยงสัญลักษณ์บางอย่าง
    • ตัวอย่าง: ln -s /opt/local/bin/git /usr/bin/git
  2. รีสตาร์ทเครื่อง
    • which gitควรระบุไดเรกทอรีในREADME.txtไฟล์จาก dmg
    • git --version ควรบอกว่าเป็นเวอร์ชั่นที่อัพเดทแล้ว
    • echo $PATH ควรเริ่มต้นด้วย /usr/local/git/bin:/usr/local/sbin:

0

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

หมายเหตุ: ฉันติดตั้ง XCode บน Yosemite (10.10.2) ล้างก่อนครั้งแรก

จากนั้นผมก็ติดตั้งจากที่มีอยู่ไบนารี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

ฉันทำอย่างนี้:

  1. เปิดแอปพลิเคชัน GitHub ติดตั้งบน Mac
  2. คลิกที่แท็บขั้นสูง→ติดตั้งเครื่องมือบรรทัดคำสั่ง
  3. เมื่อคุณได้รับข้อความว่าคำสั่งทั้งหมดได้รับการติดตั้งให้ปิดเทอร์มินัลแล้วเปิดใหม่
  4. ตอนนี้ตรวจสอบgit --versionมันควรจะให้เวอร์ชั่นล่าสุดแก่คุณ

0

คุณจำเป็นต้องปรับเปลี่ยนเส้นทางของเชลล์เส้นทางจะถูกตั้งค่าใน. bashrc หรือ. bash_profile ในโฮมไดเร็กตอรี่ของคุณมีแนวโน้มมากขึ้น. bash_profile

ดังนั้นเพิ่มเข้าไปในเส้นทางที่คล้ายกับด้านล่างและเก็บสิ่งที่คุณมีอยู่ในเส้นทางแต่ละส่วนจะถูกคั่นด้วยโคลอน:

ส่งออก PATH = "/ usr / local / bin: / usr / bin / git: / usr / bin: / usr / local / sbin: $ PATH"


0

เวอร์ชันล่าสุดไม่สามารถใช้เป็นไบนารีสำหรับ mac บน git-scm.com ได้ดังนั้นฉันจึงติดตั้งจากแหล่งที่มา ฉันขาดแพ็คเกจที่จำเป็นสำหรับการแปลและเพิ่มNO_GETTEXT=trueในการติดตั้งโดยไม่มีการแปล

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

สิ่งนี้ติดตั้งgitภายใต้การ~/binที่ฉันต้องเพิ่มไปยังจุดเริ่มต้นของPATHตัวแปรของฉัน

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