จะแสดงประวัติบันทึก git สำหรับไดเรกทอรีย่อยของ git repo ได้อย่างไร?


228

ให้บอกว่าฉันมี repo คอมไพล์ที่มีลักษณะเช่นนี้

foo/
  .git/
  A/
   ... big tree here
  B/
   ... big tree here

มีวิธีขอให้บันทึก git เพื่อแสดงเฉพาะข้อความบันทึกสำหรับไดเรกทอรีเฉพาะ ตัวอย่างเช่นฉันต้องการดูไฟล์คอมมิทที่ยอมรับใน foo / A เท่านั้น?

คำตอบ:


242

จากไดเรกทอรีfoo/ใช้

  git log -- A

คุณต้องใช้ '-' เพื่อแยกออก<path>..จากการ<since>..<until>อ้างอิง

# Show changes for src/nvfs
$ git log --oneline -- src/nvfs
d6f6b3b Changes for Mac OS X
803fcc3 Initial Commit

# Show all changes (one additional commit besides in src/nvfs).
$ git log --oneline
d6f6b3b Changes for Mac OS X
96cbb79 gitignore
803fcc3 Initial Commit

1
โดยวิธีการที่คุณควรอยู่ใน "foo" foldrer ก่อนที่จะทำ "บันทึก git - A B"
Sergey Leyko

22
สำหรับผู้อ่านที่อ่านอย่างรวดเร็วสิ่งนี้แสดงให้เห็นถึงการเปลี่ยนแปลงในA และ Bไม่เพียง แต่Aเป็น OP ที่ร้องขอ
27

1
@GoZoner มีวิธีหาคอมมิททั้งหมดที่เปลี่ยนชื่อโฟลเดอร์เฉพาะหรือไม่? โฟลเดอร์สามารถย้ายไปรอบ ๆ ได้ดังนั้นฉันไม่ต้องการค้นหาวิธีและตำแหน่งที่ย้ายโฟลเดอร์ ..
alpha_989

3
^^ อัปเดตเพื่อแสดงการเปลี่ยนแปลงสำหรับAเท่านั้นตามที่ OP ร้องขอ
GoZoner

เกิดอะไรขึ้นถ้าไดเรกทอรีถูกลบในหัวปัจจุบัน?
Aaron Franke


26

คุณสามารถใช้git logกับชื่อพา ธ ของโฟลเดอร์ที่เกี่ยวข้อง:

git log A B

เข้าสู่ระบบจะแสดงเฉพาะกระทำที่เกิดขึ้นในและA Bฉันมัก--statจะทำสิ่งต่าง ๆ ให้สวยขึ้นเล็กน้อยซึ่งช่วยในการรีวิวอย่างรวดเร็ว


26

เข้าสู่

git log .

จากไดเรกทอรีเฉพาะมันยังให้คอมมิทในไดเรกทอรีนั้น


4
ใช้งานไม่ได้สำหรับฉัน .. หลังจากเชื่อมโยงไปถึงในไดเรกทอรีเฉพาะและให้บันทึก git ให้ความมุ่งมั่นทั้งหมดจากฉัน
AKS

1
ใช้งานได้สำหรับฉัน ใช้ git bash
buckley

2

สำหรับการติดตามการเปลี่ยนแปลงในโฟลเดอร์ที่ย้ายโฟลเดอร์ฉันเริ่มใช้:

git rev-list --all --pretty=oneline -- "*/foo/subfoo/*"

มันไม่สมบูรณ์แบบเพราะจะใช้โฟลเดอร์อื่นที่มีชื่อเหมือนกัน แต่ถ้ามันไม่เหมือนใครมันก็ใช้ได้


0

คำตอบอื่น ๆ แสดงเฉพาะไฟล์ที่เปลี่ยนแปลงเท่านั้น

git log -p DIRมีประโยชน์มากหากคุณต้องการส่วนต่างของไฟล์ที่เปลี่ยนแปลงทั้งหมดในไดเรกทอรีย่อยที่ระบุ

ตัวอย่าง: แสดงการเปลี่ยนแปลงโดยละเอียดทั้งหมดในช่วงรุ่นที่ระบุ

git log -p 8a5fb..HEAD -- A B

commit 62ad8c5d
Author: Scott Tiger
Date:   Mon Nov 27 14:25:29 2017 +0100

    My comment

...
@@ -216,6 +216,10 @@ public class MyClass {

+  Added
-  Deleted

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