我在perforce資源庫中使用git。我希望能夠確切地知道哪些文件受到了git提交的影響,所以我可以使用post-commit掛鉤並在perforce中打開這些文件進行編輯,以便perforce服務器知道這些更改。
有沒有一種方法可以在提交後的鉤子中得到一個列表,確切地說哪些文件受到了提交的影響?有沒有辦法用git post-commit hook獲取提交的受影響文件?
5
A
回答
2
要獲取原始數據:
git diff-tree HEAD
6
獲取當前分支的頭部受影響的路徑(相對於$GIT_DIR
)與
git show --pretty=oneline --name-only HEAD | sed 1d
+0
你可以得到完全相同的輸出: git diff-tree --name-only -r HEAD | sed 1d 有趣的是,有幾種方法可以做到這一點...... – bergyman 2010-01-27 19:10:44
+0
在這種情況下,在'git show'上使用'git diff-tree',因爲前者是低級管道,而不是用於人類的瓷器使用。請參閱http://progit.org/book/ch9-1.html – 2010-01-27 19:16:25
1
是git log --name-only
你在找什麼? git log --name-status
也顯示了像M修改,A添加(我推測)等動作。
最後,選項--pretty=oneline
可能會方便更容易解析。
顯然你可能已經想通了,但我添加了這個以備將來參考。
相關問題
- 1. 獲取受提交影響的文件和目錄
- 2. Git沒有提交文件
- 3. 有沒有辦法限制受UPDATE語句影響的行數?
- 4. JGit - 獲取影響文件/路徑的所有提交(PlotCommitList)
- 5. Git Post Commit Hook獲取提交編號
- 6. Git沒有獲取最新的提交?
- 7. 有沒有辦法讓git不再提交一個特殊的文件?
- 8. 有沒有辦法顯示*只*空白區別與git diff?
- 9. 有沒有辦法將幾個git提交合併爲一個提交?
- 10. 有沒有辦法強制cin提交?
- 11. 獲取受影響的行
- 12. git - 有沒有辦法在工作目錄中只獲取所需的文件
- 13. 有沒有辦法從.java文件中獲取.class文件
- 14. git filter-branch只更改受影響的提交
- 15. 有沒有辦法在`git rebase -i`(交互式)中列出提交的作者?
- 16. git merge:有沒有辦法強制--squash?
- 17. 有沒有辦法讓git獲取並且只獲取歷史記錄 - 沒有文件
- 18. mysqli沒有返回受影響的行
- 19. 有沒有辦法查看待處理的請求會影響特定文件?
- 20. 有沒有辦法獲取glob解析的文件的名稱?
- 21. Git:獲取提交文件的名稱?
- 22. 有沒有辦法從azure中獲取所有文件
- 23. Git更改沒有提交提交和未跟蹤文件
- 24. git提交新文件,即使沒有添加和提交
- 25. 有沒有辦法將內聯CSS提取到CSS文件中
- 26. 有沒有辦法從Firefox cookies文件中提取cookie?
- 27. 有沒有辦法僅從tkFileDialog獲取文件的名稱?
- 28. 有沒有辦法獲取音頻文件的長度Python Pyglet
- 29. 有沒有辦法改變我第一次提交的郵件?
- 30. 有沒有辦法在沒有awk的情況下獲得git中額外的提交數量?
看起來不像那個讓我看到實際文件的列表 - 它向我展示了受影響的目錄。 – bergyman 2010-01-27 18:13:31
...沒關係,挖掘差異樹的選項這可能工作。 – bergyman 2010-01-27 18:18:09