我需要編寫一個腳本,它可以逐步跟蹤從git倉庫添加和刪除的文件和目錄。我如何識別在git commit中添加或刪除的文件/目錄?
我曾嘗試使用: git的日誌-N1 --pretty =「格式:」 --name只
但這只不過是告訴我哪些文件被提交。它不指定它是否被添加或刪除。
任何想法?
我需要編寫一個腳本,它可以逐步跟蹤從git倉庫添加和刪除的文件和目錄。我如何識別在git commit中添加或刪除的文件/目錄?
我曾嘗試使用: git的日誌-N1 --pretty =「格式:」 --name只
但這只不過是告訴我哪些文件被提交。它不指定它是否被添加或刪除。
任何想法?
你要找的選項是--name-status
。像--name-only
它實際上是一個git-diff選項; git-log接受這些來確定它將如何顯示補丁。
git log -n 1 --pretty=oneline --name-status
或等價(減去日誌頭):
git diff --name-status HEAD^ HEAD
由於isbadawi所指出的,你也可以使用git-whatchanged。這是相當多的git-記錄與特定的diff的輸出:
git whatchanged -n 1
你可能會喜歡的--name-status
版本更好,雖然,因爲它不會顯示所有的blob哈希,只是人類可讀的狀態。
這樣做!現在我只需要寫一個腳本來閱讀該行,並選擇A和D,然後我就完成了。謝謝。 – pocketfullofcheese 2010-04-02 14:56:38
以_commit消息格式輸出包含名爲** .gitignore **的文件的**添加**的特定提交的示例,已更改文件的名稱和狀態_:'git log --name-status --diff -filter = A - follow .gitignore' – Eido95 2017-05-23 19:26:39