จะอ่านความคิดเห็นล่าสุดได้อย่างไร?


400

บ่อยครั้งระหว่างการกระทำ ( $ git -commit -m "") ฉันต้องการอ่านความคิดเห็นสุดท้ายของฉันเพื่อจดจำความคืบหน้าของฉัน มีวิธีง่าย ๆ ในการเข้าถึงข้อความการส่งข้อความครั้งสุดท้ายโดยตรงผ่าน command-line หรือไม่? (ฉันใช้ Windows)


6
หากเป็นการกระทำปกติให้ทำalias(เช่นwherewasi;-) สำหรับโซลูชัน / บรรทัดคำสั่งที่คุณเลือก คุณสามารถรวมข้อมูลสาขาได้เช่นกัน
Philip Oakley

คำตอบ:


755
git show

เป็นประเภทที่เร็วที่สุด แต่แสดงให้คุณเห็นความแตกต่างเช่นกัน

git log -1

รวดเร็วและง่าย

git log -1 --pretty=%B

หากคุณต้องการเพียงข้อความยืนยันและไม่มีอะไรอื่น


2
รูปแบบ% B คือสิ่งที่ฉันต้องการเพื่อไม่ให้มีการส่งข้อความการเยื้อง และใช่ @Juh_ ถึงแม้ว่า git gui จะไม่เชื่อมโยงคุณ แต่เป็นความคิดที่ดีที่จะใช้ข้อความ 80column ในการส่งข้อความไม่ใช่บรรทัดต่อย่อหน้า
Peter Cordes

4
@Juh_ คุณสามารถแสดงข้อความทั้งหมดโดยใช้git log -1 --pretty=%B | catแต่ตามที่ Peter กล่าวไว้คุณควรพยายามเก็บไว้ที่ 80 ตัวอักษร
Ruckus T-Boom

3
@Juh_ นี่มันสายเกินไปสักหน่อย แต่ถ้าคุณต้องการให้คอมมิทส่งข้อความไปที่ line-wrap ให้ไปที่cat :git log -1 --pretty= | cat
kosgeinsky

8
บางคนกำลังค้นหาข้อมูลเพิ่มเติมเกี่ยวกับตัวยึดเปอร์เซ็นต์โปรดดูที่: kernel.org/pub/software/scm/git/docs/… (เลื่อนลงไปที่format:<string>)
imme

3
ถ้าคุณเพิ่มformat:คำนำหน้าไป%Bตามข้อเสนอแนะในมนุษย์เอกสารมันเคยชินแสดงบรรทัดว่างพิเศษในตอนท้ายของการส่งออก:git log -1 --pretty=format:%B
มาเรียโนรุยซ์

84

โดยทั่วไป:

git log -n

จะแสดงnข้อความการส่งข้อความล่าสุด

หรูหรากว่า - หากคุณต้องการภาพรวมคร่าวๆ

git log --oneline -n

นี่จะแสดงบรรทัดแรกของnข้อความคอมมิทล่าสุด

คุณสามารถบันทึกสิ่งนี้เป็นนามแฝงคอมไพล์หรือนามแฝงเชลล์ด้วยคำสั่งที่สั้นลง ผมเคยได้รับมันในเปลือกของฉันเป็นglogตัวอย่างเช่นและฉันสามารถดูข้อความของฉันเมื่อ 10 glog -10กระทำด้วย


23

git log -1จะแสดงข้อความการส่งข้อความล่าสุดหรือgit log -1 --onelineหากคุณต้องการให้ sha1 และข้อความการส่งข้อความที่เกี่ยวข้องแสดงขึ้นเท่านั้น


ใน Mercurial เดียวกันกับอะไร?
เนวินราชาวิกเตอร์

14

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

git show -s --format=%s

ที่นี่--formatจะช่วยให้ตัวเลือกการพิมพ์ต่าง ๆ ดูเอกสารที่นี่ โดยเฉพาะ%sหมายถึง 'เรื่อง' นอกจากนี้-sย่อมาจาก--no-patchซึ่งระงับเนื้อหาต่าง

ฉันมักจะใช้

git show -s --format='%h %s'

ซึ่ง%hหมายถึงแฮชสั้น ๆ ของการกระทำ

อีกวิธีคือ

git show-branch --no-name HEAD

ดูเหมือนว่าจะทำงานได้เร็วกว่าวิธีอื่น

ฉันเขียนเครื่องมือเล็ก ๆ เพื่อดูสถานะของ repos ทั้งหมดของฉัน คุณสามารถค้นหาได้ในGitHub


IMO นี้ดีกว่าคำตอบที่ยอมรับได้สำหรับหลายคอมมิท มันไม่ได้ทำให้เกิด linebreaks ที่ไม่จำเป็นสำหรับฉัน การกระทำที่หลากหลาย (เช่น 5 รายการที่ผ่านมา) สามารถแสดงโดยรวม -5 เช่นgit show -s --format=%s -5
Sigmatics

10

git log -1 branch_name จะแสดงข้อความล่าสุดจากสาขาที่ระบุ (เช่นไม่จำเป็นต้องเป็นสาขาที่คุณเปิดอยู่)


7

สำหรับสิ่งที่อ่านได้มากกว่านี้ให้รันคำสั่งนี้หนึ่งครั้ง:

git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"

ดังนั้นเมื่อคุณเรียกใช้แล้ว:

git lg

คุณได้รับการอ่านที่ดี หากต้องการแสดงเฉพาะบรรทัดสุดท้าย:

git lg -1

วิธีแก้ปัญหาพบได้ที่นี่


4

จะเริ่มต้นด้วย git log -1 --pretty='%s'

แต่ด้านล่างหนึ่งครอบคลุมทุกกรณี

git log --pretty='format:%Creset%s' --no-merges -1

  • ไม่มีช่องว่างสีขาวที่ไม่พึงประสงค์
  • ยกเลิกการรวมการกระทำ
  • ไม่ยอมรับรหัส, วันที่, แสดงเฉพาะข้อความ

วางและดูด้วยตัวคุณเอง



0

ฉันเพิ่งพบวิธีแก้ปัญหาด้วยเชลล์โดยเรียกคำสั่งก่อนหน้า

กดCtrl-R เพื่อแสดงคำสั่ง reverse search:

reverse-i-search

จากนั้นเริ่มพิมพ์git commit -mสิ่งนี้จะเพิ่มสิ่งนี้เป็นคำสั่งค้นหาและสิ่งนี้จะทำให้คอมไพล์ก่อนหน้านี้คอมมิทด้วยข้อความ:

reverse-i-search`git commit -m`: git commit -m "message"

เข้าสู่ แค่นั้นแหละ!

(ทดสอบในเชลล์ Ubuntu)

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