Filter git log untuk hanya menampilkan perubahan saya

93

Bagaimana cara memfilter git loguntuk hanya menampilkan perubahan saya (tidak termasuk perubahan yang dilakukan oleh pengembang lain)?

Veera
sumber

Jawaban:

110

Anda dapat memfilter log menurut penulisnya misalnya, sehingga Anda dapat memfilter berdasarkan nama Anda:

git log --author="YourName"

atau oleh pelaku:

 git log --committer="YourName"
aleroot
sumber
2
Selain itu, hasilnya dapat dibuat agar terlihat lebih cantik dengan sejumlah kombinasi git log --author = 'Your Name' --oneline --pretty = format: '% h% x09% an% x09% ad% x09% s '--date = short atau git log --pretty = format: "% h% x09% an% x09% ad% x09% s" --author = "Your Name"
sawe
juga -imengaktifkan case-insensitive-regex untuk nilai--author
Trevor Boyd Smith
32

Anda harus menggunakan --authorbendera untuk git-logperintah .

Seperti:

git log --author="You Name"

Sebagian dari nama juga berfungsi:

git log --author=Name

Namun jika Anda ingin menggunakan skrip generik seperti di tip ini , Anda dapat melakukannya seperti ini:

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

Anda kemudian dapat membuat alias:

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

Anda kemudian dapat mengetik: git mylogdan hanya melihat komit Anda.

Haralan Dobrev
sumber
git log --author = "$ (git config user.name)" sepertinya tidak berfungsi di Windows. Ada saran?
Andreas Presthammer
@AndreasPresthammer Saya tidak yakin apakah Anda masih bertanya-tanya tentang masalah ini, tetapi jika masalah Anda adalah dengan menyiapkan alias, tetapi jika Anda menyiapkan alias ini di editor teks daripada melalui git bash, Anda mungkin mengalami masalah dengan tanda kutip ganda yang tidak dapat dihindari (setidaknya, saya mengalami masalah seperti itu). Di .gitconfig saya di Windows, saya telah menyiapkan alias ini, dan mereka berfungsi untuk saya. my-history = !git log --author=\"$(git config user.name)\"
Nelson O
@AndreasPresthammer Jika Anda menjalankannya cmd, itu tidak akan berfungsi karena substitusi perintah $()adalah sintaks Bash. Jadi, tidak ada substitusi yang terjadi dan Anda akhirnya meminta Git untuk seorang penulis yang secara harfiah disebutkan $(git config user.name)yang jelas tidak ada.
user31389