ใน Git ฉันจะทราบได้อย่างไรว่าการแก้ไขปัจจุบันของฉันคืออะไร


167

ฉันแค่อยากรู้ว่าหมายเลขเวอร์ชันปัจจุบันของฉันคืออะไร


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

คำตอบ:


228

คุณหมายถึงอะไรโดย "หมายเลขรุ่น"? เป็นเรื่องธรรมดามากที่จะติดแท็กการคอมมิทด้วยหมายเลขเวอร์ชั่นจากนั้นใช้

$ git describe --tags

เพื่อระบุ HEAD ปัจจุบันแท็กใด ๆ หากคุณหมายถึงคุณต้องการรู้ว่าแฮชของ HEAD ปัจจุบันคุณอาจต้องการ:

$ git rev-parse HEAD

หรือสำหรับแฮชการแก้ไขสั้น ๆ :

$ git rev-parse --short HEAD

มันมักจะเพียงพอที่จะทำ:

$ cat .git/refs/heads/${branch-master}

แต่สิ่งนี้ไม่น่าเชื่อถือเนื่องจากอาจมีการอ้างอิง


8
refs อาจจะบรรจุในดังนั้นคุณอาจควรหลีกเลี่ยงการเข้าถึงโดยตรง.git/packed-refs .git/refs/เพียงแค่ใช้git rev-parse master(หรือgit rev-parse refs/heads/masterถ้าคุณจำเป็นต้องโปร่งใสอย่างสมบูรณ์)
Chris Johnsen

108

มีหลายวิธีที่git log -1เป็นวิธีที่ง่ายและธรรมดาที่สุดฉันคิดว่า


1
ฉันจะทำให้ไฟล์เป็นเวอร์ชันก่อนหน้าได้อย่างไร
TIMEX

1
บางทีคุณอาจต้องการเช็คเอาต์คอมไพล์ HEAD ^ - ชื่อไฟล์
manojlds

2
btw สิ่งนี้ให้มากกว่าการแก้ไขในปัจจุบันและคุณจะต้องวิเคราะห์มันดังนั้น (ไม่ใช่โซลูชันที่ดีที่สุด / ง่ายที่สุด / ทั่วไป, imho)
RAM237

36

นี่เป็นเพียงการแก้ไข

git rev-parse HEAD

ฉันคิดว่านี่เป็นคำตอบที่ดีที่สุดเพราะมันไม่ได้ขึ้นอยู่กับการใช้งาน คำตอบของ William "cat .git / refs / heads / master" จะให้ค่าเดียวกัน แต่ไม่มีการรับประกันว่ามันจะทำงานได้ในอนาคตหากการดำเนินการเปลี่ยนแปลง
Thagomizer

เห็นด้วยนี่เป็นคำตอบที่ดีที่สุด การกล่าวถึง--shortตัวเลือกสั้น ๆจะทำให้สมบูรณ์
บ๊อบบี้แจ็ค

15

นี่จะให้ตัวเลขสองสามตัวแรกของแฮชและพวกมันมีความเป็นเอกลักษณ์มากพอที่จะใช้เป็นหมายเลขเวอร์ชันได้

git rev-parse --short HEAD


0

ด้านล่างนี้จะทำงานกับการแก้ไขที่ผลักดันก่อนหน้านี้ไม่เพียง แต่ HEAD เท่านั้น

สำหรับแฮชการแก้ไขแบบย่อ:

git log -1 --pretty=format:%h

สำหรับแฮชการแก้ไขที่ยาว:

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