git -> แสดงรายการไฟล์ที่เปลี่ยนแปลงในการคอมมิตล่าสุดในไดเร็กทอรีเฉพาะ


95

ใน Subversion svn logคือคำสั่งเพื่อแสดงข้อความบันทึกคอมมิต - สำหรับรายละเอียดโปรดดูคู่มือออนไลน์ที่http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.log.html

ฉันจะทำอย่างไร:

svn log -v -l 10 ./

ในคอมไพล์?

คำตอบ:


173

อันนี้คล้ายกับคำสั่ง svn มากกว่าเนื่องจากแสดงสถานะไฟล์: เพิ่ม (A), คัดลอก (C), ลบ (D), ดัดแปลง (M), เปลี่ยนชื่อ (R) และอื่น ๆ

git log --name-status -10 path/to/dir

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


12
เพื่อความสมบูรณ์: ชุดตัวเลือกที่คล้ายกันที่ใช้กันทั่วไปคือ-p(แพทช์เต็ม) --stat(จำนวนบรรทัดที่เปลี่ยนแปลง) --numstat(เหมือน--statแต่เครื่องอ่านได้) --name-statusและ--name-only(เฉพาะชื่อไฟล์)
Cascabel

3
สำหรับใครก็ตามที่มาถึงคำถามนี้โดยไม่รู้ตัว -10 หมายถึงจำนวนคอมมิตที่คุณต้องการให้แสดง หากคุณต้องการรายการคอมมิตแบบครอบคลุมให้ลองกำหนดจำนวนให้ใหญ่ผิดปกติเช่น -1000 หรือมากกว่าตามต้องการ
Julian Soro

นอกจากนี้ยังสามารถดูประวัติตั้งแต่การกระทำหรือป้ายกำกับที่เฉพาะเจาะจงได้หรือไม่? มันเป็นการกระทำหลายร้อยครั้งที่ผ่านมาดังนั้นการพยายามนับว่า ...
MrFox

2
@MrFox git log <from revision>..เช่นgit log abc123... อ่านเพิ่มเติมเกี่ยวกับรูปแบบช่วงได้ที่นี่: kernel.org/pub/software/scm/git/docs/…
htanata

38

หากต้องการแสดงไฟล์ทั้งหมดที่เปลี่ยนแปลงใน 10 คอมมิตล่าสุดโดยไม่มีข้อมูลคอมมิตให้ทำ:

git diff --name-only HEAD~10..HEAD yourdir

4
โซลูชันที่สมบูรณ์แบบสำหรับการเปิดไฟล์อีกครั้งในโปรแกรมแก้ไขของคุณ
cdosborn

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

7

ลองทำดู

git log -p -10 yourdir/

มันควรจะทำงาน


1
OP ขอรายชื่อไฟล์ที่เปลี่ยนแปลงไม่ใช่แพทช์เต็ม
Cascabel

1
หากคุณต้องการให้รายการไฟล์เปลี่ยนแปลงคุณสามารถทำได้ --stat แทน -p
blue112

1

หากต้องการแสดงcommitสาขาทั้งหมดของคุณ (ล่าสุดและเก่า) คุณต้องนับจำนวนคอมมิตในสาขา

git rev-list --count branch_name

เมื่อคุณได้รับการนับการกระทำทั้งหมดคุณสามารถเรียกใช้

git log --name-status -countNumber /path

และสามารถลดความซับซ้อนของมุมมองโดยเพิ่ม--pretty=onelineตัวเลือกให้กับgit logคำสั่งด้านบน การเพิ่ม| sort | uniqคำสั่งจะช่วยให้เราเห็นการติดแท็กสถานะ A / C / D / M / R ตามคำตอบของ
htanata

0

git แสดง $ CommitId $ --name-only

มันจะส่งผลให้ไฟล์มีการเปลี่ยนแปลงระหว่างการคอมมิตนี้

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