2012-11-26 9 views
2

在試圖寫一個預先收到鉤子拒絕某些種類的變化某些類型的文件中,我難倒,爲什麼下面是該腳本的法律:爲什麼git預接收鉤顯示最近的文件更改但不區分?

git show <new_commit>:<file> 

在本example使用(在已梳理出使用帶--name僅-DIFF受影響的文件),但不

git diff <old_commit> <new_commit> -- <file> 

我更喜歡後者,這樣我只能拒絕引進,而不是在文件中已經存在的模式的變化,但它產生錯誤:從此腳本執行時出現「未知版本或路徑不在工作樹中」 。

我懷疑它與ordering of events有關,因爲它們都在裸回購的命令行上工作,但希望瞭解其區別。

回答

-3

由於answer you linked指出,在執行pre-receive鉤時,沒有文件尚未收到任何,只有裁判應該更新(這和其他掛鉤的細節可以在githooks(5) manpage找到)。

由於沒有可以比較舊數據的數據,因此不能創建差異。

+1

但是如果還沒有收到文件,怎麼能「顯示」的工作? –

+1

@JohnLehmann'git show '當你從該腳本調用它時會打印什麼?你能粘貼一個示例輸出嗎? –

+0

鏈接的答案是錯誤的。 「預先接收」並不意味着文件尚未收到。 – jwg

相關問題