กรองบันทึกคอมไพล์เพื่อแสดงเฉพาะการเปลี่ยนแปลงของฉัน


93

ฉันจะกรองgit logให้แสดงเฉพาะการเปลี่ยนแปลงของฉันได้อย่างไร (ยกเว้นการเปลี่ยนแปลงที่ผู้พัฒนารายอื่นกระทำ)

คำตอบ:


110

คุณสามารถกรองบันทึกโดยผู้เขียนเพื่อให้คุณสามารถกรองตามชื่อของคุณ:

git log --author="YourName"

หรือโดยผู้ส่ง:

 git log --committer="YourName"

2
นอกจากนี้ผลลัพธ์ยังสามารถทำให้ดูสวยขึ้นด้วยชุดค่าผสม git log --author = 'Your Name' --oneline --pretty = format: '% h% x09% an% x09% ad% x09% s '--date = short or git log --pretty = format: "% h% x09% an% x09% ad% x09% s" --author = "Your Name"
sawe

ยัง-iเปิดใช้งาน regex แบบไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่สำหรับค่าของ--author
Trevor Boyd Smith

32

คุณควรใช้--authorธงไปที่git-logคำสั่ง

ชอบมาก:

git log --author="You Name"

ส่วนหนึ่งของชื่อยังใช้งานได้:

git log --author=Name

อย่างไรก็ตามหากคุณต้องการใช้ในสคริปต์ทั่วไปเช่นในเคล็ดลับนี้คุณสามารถทำได้ดังนี้:

git log --author="$(git config user.name)"

จากนั้นคุณสามารถสร้างนามแฝง:

git config --global alias.mylog '!git log --author="$(git config user.name)"'

จากนั้นคุณสามารถพิมพ์: git mylogและดูการกระทำของคุณเท่านั้น


git log --author = "$ (git config user.name)" ดูเหมือนจะไม่ทำงานบน Windows ข้อเสนอแนะใด ๆ ?
Andreas Presthammer

@AndreasPresthammer ฉันไม่แน่ใจว่าคุณยังคงสงสัยเกี่ยวกับปัญหานี้หรือไม่ แต่ถ้าปัญหาของคุณอยู่ที่การตั้งชื่อนามแฝง แต่ถ้าคุณกำลังตั้งค่านามแฝงนี้ในโปรแกรมแก้ไขข้อความแทนที่จะใช้ git bash คุณอาจมี ปัญหาเกี่ยวกับเครื่องหมายอัญประกาศคู่ที่ไม่ใช้ Escape (อย่างน้อยฉันก็มีปัญหาเช่นนี้) ใน. gitconfig ของฉันบน Windows ฉันได้ตั้งค่านามแฝงเหล่านี้แล้วและมันก็ใช้งานได้สำหรับฉัน my-history = !git log --author=\"$(git config user.name)\"
Nelson O

@AndreasPresthammer หากคุณกำลังเรียกใช้มันcmdจะไม่ทำงานเนื่องจากการแทนที่คำสั่ง$()เป็นไวยากรณ์ Bash ดังนั้นจะไม่มีการทดแทนเกิดขึ้นและคุณต้องถาม Git สำหรับผู้เขียนที่มีชื่อตามตัวอักษรว่า$(git config user.name)ใครไม่มีอยู่จริง
user31389
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.