[英]With Git, how to find who modified directory contents?
如何在Git中找到誰最后修改目錄的內容? 在理想的世界中,我希望ls
的輸出與git blame
產生的相同的內容成為前綴。 因此,對於存儲庫的每個跟蹤目錄,請查找上次對其進行修改的人。
舉一個例子,說這是目錄結構:
|-project
|-dir-a
|-file1.txt (modified by Alice in commit 1)
|-file2.txt (modified by Bob in commit 2)
|-file5.txt (modified by Carl in commit 4)
|-dir-b
|-file3.txt (modified by Alice in commit 3)
|-file4.txt (modified by Alice in commit 3)
然后,當我尋找的腳本在project/
運行時,將產生如下內容:
$ unknown-command
commit4 Carl dir-a
commit3 Alice dir-b
我不擔心腳本編寫,因此它不必是一個完整的解決方案。
你是這個意思嗎
for i in $(ls -1); do git log --format=format:"%h %<(28)%ai %<(30)%an $i" -n1 $i; done
...產生:
7a29533 2015-02-27 19:19:45 +0100 David Ostrovsky BUCK
6f083b8 2014-11-22 11:16:14 +0100 David Ostrovsky bucklets
686bfea 2014-12-04 14:23:30 +0900 David Pursehouse contrib
23571ab 2008-11-14 16:56:58 -0800 Shawn O. Pearce COPYING
...
編輯:感謝ghoti的評論-解析ls
確實不是一個好主意。 此版本適用於文件名中的空格:
find . -maxdepth 1 -exec git log -n1 --format=format:"%h %<(28)%ai %<(30)%an {}" {} \;
您是否在尋找“ git log --name-status”?
$ git lg --name-status
* 67475d0 - (HEAD, origin/master, master) 2015-04-09-rename-files-in-batch.html <lgfang@5 days ago>|
| A _posts/util/2015-04-09-rename-files-in-batch.html
* 2098891 - 2015-04-07-kindle-dedrm: add <lgfang@6 days ago>|
| A _posts/rec/2015-04-07-kindle-dedrm.html
* a96fc4e - 2015-04-07-snmptrapd: add <lgfang@6 days ago>|
| A _posts/network/2015-04-07-snmptrapd.html
* 059342f - 2014-03-26-java-cover: add <lgfang@8 days ago>|
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.