แสดงรายการคอมมิตทั้งหมด (ในทุกสาขา) สำหรับไฟล์ที่กำหนด


97

คำถามนี้เกี่ยวข้องอย่างใกล้ชิดกับList all commits สำหรับไฟล์เฉพาะอย่างไรก็ตามมันแตกต่างกัน ฉันต้องการทราบว่าการกระทำใดในทุกสาขาได้แก้ไขไฟล์ที่ระบุ

เพื่อให้ซับซ้อนยิ่งขึ้นไฟล์ที่กำหนดอาจอยู่ในแผนผังการทำงานหรือไม่ก็ได้

คำตอบ:


121

ลองสิ่งนี้:

git log --all -- path

8
Nb. คุณอาจต้องการ--full-historyตัวเลือกทั้งนี้ขึ้นอยู่กับสิ่งที่คุณต้องการดู: ดูส่วนเกี่ยวกับการทำให้ประวัติง่ายขึ้นใน git-log หรือ gitrevisions จัดการ
Jakub Narębski

คำตอบที่ถูกต้องแน่นอนสมมติว่าคุณไม่ต้องการใช้ GUI
Matt Setter

56

คุณสามารถใช้ gitk

gitk --all <path to file> (you need to install gitk)

เช่น

gitk --all -- /home/kit.ho/project/abc.txt


1
ฉันไม่รู้ว่าทำไมคำตอบของฉันจึงถูกลงคะแนน แต่คุณไม่ได้พิจารณาว่าคำถามนั้นขอบันทึกโดยเฉพาะในทุกสาขา คุณเพียงแค่ให้คำตอบว่า OP ได้เชื่อมโยงไปแล้ว
manojlds

2
ฉันไม่ได้เป็นผู้โหวตลงคะแนน แต่สิ่งนี้ต้องการ--allหรือสิ่งที่คล้ายกันเพื่อใช้ในประวัติศาสตร์มากกว่าสาขาปัจจุบัน
wjl

ทำไมต้องโหวตลง? ทำงานได้ดีอย่างสมบูรณ์ ทั้งสองคำตอบถูก หนึ่งใช้งานได้กับคอนโซลข้อความอีกอันสำหรับ gitk GUI ฉันสามารถทำเครื่องหมายว่าถูกต้องทั้งคู่ได้หรือไม่?
Saurabh Nanda

@Saurabh Nanda: ทำเครื่องหมายสิ่งที่คุณคิดว่ามีประโยชน์สำหรับคุณ
Kit Ho

@saurabh - คำตอบนี้ได้รับการแก้ไขแล้ว Kit Ho - พูดถึงว่าคุณกำลังแก้ไข และทำให้ดูเหมือนว่าคำตอบทั้งสองเดิมนั้นถูกต้อง
manojlds

50

บรรทัดคำสั่ง

ฉันขอแนะนำอย่างยิ่งให้เพิ่มตัวเลือกกราฟด้วย git log:

git log --graph --all -- <filename>

git log --graph --all - <filename>

กุ่ย

Gitk เป็นเครื่องมือที่ค่อนข้างเก่าและไม่ได้ติดตั้งเสมอไปฉันขอแนะนำเครื่องมือฟรีอื่น ๆ เช่น SourceTree:

SourceTree


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