เพื่อให้คำตอบของคุณสมบูรณ์ไวยากรณ์นั้นแน่นอน
git show object
git show $REV:$FILE
git show somebranch:from/the/root/myfile.txt
git show HEAD^^^:test/test.py
คำสั่งใช้รูปแบบการแก้ไขตามปกติซึ่งหมายความว่าคุณสามารถใช้สิ่งใดสิ่งหนึ่งต่อไปนี้:
- ชื่อสาขา (ที่แนะนำโดยเถ้า )
HEAD
+ x จำนวน^
อักขระ
- แฮช SHA1 ของการแก้ไขที่กำหนด
- อักขระสองสามตัวแรก (อาจ 5) ของแฮช SHA1 ที่กำหนด
เคล็ดลับสิ่งสำคัญคือต้องจำไว้ว่าเมื่อใช้ " git show
" ให้ระบุพา ธ จากรูทของที่เก็บเสมอไม่ใช่ตำแหน่งไดเรกทอรีปัจจุบันของคุณ
(แม้ว่าMike Moreartyกล่าวว่าอย่างน้อยด้วย git 1.7.5.4 คุณสามารถระบุเส้นทางสัมพัทธ์ได้โดยใส่ " ./
" ที่จุดเริ่มต้นของเส้นทาง - ตัวอย่างเช่น:
git show HEAD^^:./test.py
)
ด้วย Git 2.23+ (สิงหาคม 2019) คุณสามารถใช้git restore
ซึ่งแทนที่คำสั่งที่สับสนgit checkout
git restore -s <SHA1> -- afile
git restore -s somebranch -- afile
ที่จะเรียกคืนบนต้นทำงานเฉพาะไฟล์ที่อยู่ใน"ต้นฉบับ" ( -s
)กระทำ SHA1 somebranch
หรือสาขา
ในการกู้คืนดัชนีด้วย:
git restore -s <SHA1> -SW -- afile
( -SW
: สั้นสำหรับ--staged --worktree
)
ก่อน git1.5.x นั่นทำด้วยระบบประปาบางส่วน:
git ls-tree <rev>
แสดงรายการวัตถุ 'หยด' ตั้งแต่หนึ่งวัตถุขึ้นไปภายในการคอมมิท
git cat-file blob <file-SHA1>
แมวไฟล์ตามที่ได้รับมอบหมายภายในการแก้ไขที่เฉพาะเจาะจง (คล้ายกับ svn cat) ใช้ git ls-tree เพื่อดึงค่าของไฟล์ที่กำหนด sha1
git cat-file -p $(git-ls-tree $REV $file | cut -d " " -f 3 | cut -f 1)::
git-ls-tree แสดง ID อ็อบเจ็กต์สำหรับ $ file ในการแก้ไข $ REV ซึ่งถูกตัดออกจากเอาต์พุตและใช้เป็นอาร์กิวเมนต์สำหรับ git-cat-file ซึ่งควรจะเรียกว่า git-cat-object จริงๆ วัตถุนั้นจะ stdout
หมายเหตุ: ตั้งแต่ Git 2.11 (ไตรมาสที่ 4 ปี 2559) คุณสามารถใช้ตัวกรองเนื้อหากับgit cat-file
เอาท์พุท!
ดูกระทำ 3214594 , กระทำ 7bcf341 (9 กันยายน 2016) กระทำ 7bcf341 (9 กันยายน 2016) และกระทำ b9e62f6 , กระทำ 16dcc29 (24 สิงหาคม 2016) โดยโยฮันเน Schindelin (dscho
)
(ผสานโดยJunio C Hamano - gitster
- in 7889ed2 , 21 Sep 2016)
cat-file
: การสนับสนุน--textconv
/--filters
ในโหมดแบทช์
แม้ว่า " git hash-objects
" ซึ่งเป็นเครื่องมือที่ใช้สตรีมข้อมูลระบบไฟล์และวางลงในที่เก็บวัตถุ Git อนุญาตให้ทำการแปลง "นอกโลกสู่ Git" (เช่นการแปลงและแอปพลิเคชันปลายทาง ของตัวกรองที่สะอาด) และมันมีคุณสมบัติตามค่าเริ่มต้นจากวันแรก ๆ การดำเนินการย้อนกลับ " git cat-file
" ซึ่งใช้วัตถุจากที่เก็บวัตถุ Git และส่งออกเพื่อการบริโภคโดยโลกภายนอกไม่มีกลไกที่เทียบเท่ากับ ใช้งาน "Git เพื่อนอกโลก"
git config diff.txt.textconv "tr A-Za-z N-ZA-Mn-za-m <"
git cat-file --textconv --batch
หมายเหตุ: " git cat-file --textconv
" เริ่ม segfaulting เมื่อเร็ว ๆ นี้ (2017) ซึ่งได้รับการแก้ไขใน Git 2.15 (Q4 2017)
ดูการกระทำ cc0ea7c (21 Sep 2017) โดยJeff King ( peff
) )
(ผสานโดยJunio C Hamano - gitster
- in bfbc2fc , 28 Sep 2017)
สังเกตได้ว่า แทนที่ / แทนที่ไฟล์ด้วยเนื้อหาที่ผ่านมาคุณไม่ควรใช้คำสั่งที่สับสนgit checkout
อีกต่อไป แต่git restore
(Git 2.23+, สิงหาคม 2019)
git restore -s <SHA1> -- afile
ที่จะคืนค่าในแผนผังการทำงานเฉพาะไฟล์ที่มีอยู่ใน "แหล่งที่มา" ( -s
) กระทำ SHA1
ในการกู้คืนดัชนีด้วย:
git restore -s <SHA1> -SW -- afile
(-SW
: สั้นสำหรับ--staged --worktree
)
git show
(ไม่ช่วยเหลือ) ใช้ไวยากรณ์ต่างกับโคลอนgit show 2c7cf:my_file.txt