Git คำสั่งเพื่อแสดง HEAD กระทำ id?


251

ฉันสามารถใช้คำสั่งใดในการพิมพ์รหัสการยอมรับของ HEAD

นี่คือสิ่งที่ฉันทำด้วยมือ:

$ cat .git/HEAD
ref: refs/heads/v3.3
$ cat .git/refs/heads/v3.3
6050732e725c68b83c35c873ff8808dff1c406e1

แต่ฉันต้องการสคริปต์ที่สามารถไพพ์เอาท์พุทของคำสั่งบางอย่างไปยังไฟล์ข้อความได้อย่างน่าเชื่อถือซึ่งไฟล์ข้อความนั้นมีรหัสการยอมรับของ HEAD (ไม่มีอะไรมากไปกว่าและน้อยกว่าและไม่ใช่แค่การอ้างอิง) ใครช่วยได้บ้าง


ฉันมีคำถามที่คล้ายกันมาก่อน และมันก็ได้รับคำตอบอย่างดีที่นี่: stackoverflow.com/questions/44994626/…
smwikipedia

คำตอบ:


451

ใช้คำสั่ง:

git rev-parse HEAD

สำหรับเวอร์ชั่นย่อ:

git rev-parse --short HEAD

34
สำหรับทุกคนที่กำลังมองหาแฮชเวอร์ชั่นสั้นgit rev-parse --short HEADจะใช้งานได้
mgarciaisaia


15

ด้ายเก่ายังคงใช้สำหรับการอ้างอิงในอนาคต ... :) แม้จะติดตามผลงาน

git show-ref --head

โดยค่าเริ่มต้น HEAD จะถูกกรองออก ระมัดระวังเกี่ยวกับการติดตามแม้ว่า; พหูพจน์ "หัว" ด้วย 's' ในตอนท้าย คำสั่งต่อไปนี้จะแสดงสาขาภายใต้ "อ้างอิง / หัว"

 git show-ref --heads

4
โดยใช้คำสั่งเหล่านี้ใน (ขนาดใหญ่) คอมไพล์ซื้อคืนที่ฉันได้รับจากทั้งสองสายgit show-ref --headsและ 6290 git show-ref --headสายจาก ดังนั้นหากคุณต้องการแฮชเพียงครั้งเดียวสิ่งนี้อาจไม่ได้ผลตามที่ต้องการ
Remigius Stalder

7

คุณสามารถระบุgit logตัวเลือกเพื่อแสดงเฉพาะการส่งครั้งล่าสุด-1และรูปแบบที่รวมเฉพาะการส่งมอบแบบนี้:

git log -1 --format=%H

หากคุณต้องการรหัสยืนยันย่อ:

git log -1 --format=%h



1

ตาม https://git-scm.com/docs/git-logสำหรับเอาต์พุตที่สวยมากขึ้นในคอนโซลคุณสามารถใช้--decorateอาร์กิวเมนต์ของคำสั่งgit-log :

git log --pretty=oneline --decorate

จะพิมพ์:

2a5ccd714972552064746e0fb9a7aed747e483c7 (HEAD -> master) New commit
fe00287269b07e2e44f25095748b86c5fc50a3ef (tag: v1.1-01) Commit 3
08ed8cceb27f4f5e5a168831d20a9d2fa5c91d8b (tag: v1.1, tag: v1.0-0.1) commit 1
116340f24354497af488fd63f4f5ad6286e176fc (tag: v1.0) second
52c1cdcb1988d638ec9e05a291e137912b56b3af test

0

git rev-parse --abbrev-ref HEAD


1
สิ่งนี้ไม่แสดงการส่งมอบรหัส แต่เป็นชื่อใด ๆ (เช่นสาขาหรือแท็ก) ที่เกี่ยวข้องกับการส่งมอบ นี่ไม่ใช่สิ่งที่ผู้ใช้ดั้งเดิมต้องการ
Asfand Qazi

0

คุณสามารถใช้คำสั่งนี้

$ git rev-list HEAD

นอกจากนี้คุณยังสามารถใช้headคำสั่ง Unix เพื่อแสดงการn HEADกระทำล่าสุดเช่น

$ git rev-list HEAD | head - 2


0

คุณสามารถใช้ได้

git log -g branchname

เพื่อดูgit reflogข้อมูลที่จัดรูปแบบเช่นgit logผลลัพธ์

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