2010-01-27 73 views
5

我在perforce資源庫中使用git。我希望能夠確切地知道哪些文件受到了git提交的影響,所以我可以使用post-commit掛鉤並在perforce中打開這些文件進行編輯,以便perforce服務器知道這些更改。
有沒有一種方法可以在提交後的鉤子中得到一個列表,確切地說哪些文件受到了提交的影響?有沒有辦法用git post-commit hook獲取提交的受影響文件?

回答

2

要獲取原始數據:

git diff-tree HEAD

+0

看起來不像那個讓我看到實際文件的列表 - 它向我展示了受影響的目錄。 – bergyman 2010-01-27 18:13:31

+0

...沒關係,挖掘差異樹的選項這可能工作。 – bergyman 2010-01-27 18:18:09

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可能會方便更容易解析。

顯然你可能已經想通了,但我添加了這個以備將來參考。

相關問題