2017-01-24 50 views
1

是否可以編寫服務器端預接收鉤以防止通過提交將大型文件或二進制文件添加到存儲庫?git lfs預接收掛鉤以防止存儲庫中不需要的文件

本地我可以通過添加文件類型的文件.gitattribute控制的git-LFS行爲:

git lfs track "*.zip" 

這將導致,如果添加了一個新的zip文件,它將被GIT-LFS管理並沒有提交給git對象存儲。

的git-P4甚至允許我文件大小的閾值,如:

largeFileCompressedThreshold = 1m 
    largeFileThreshold = 50m 

隨着多個開發人員,並可能會發生髮展的環境,是一個增加了這樣一個二進制文件,而無需配置的git-LFS,因此,這樣的文件可能直接提交給git。 我想要一個拒絕這樣的提交併給出有意義的消息的服務器端鉤子,因此開發人員可以輕鬆識別問題。

理想情況下,此接收掛鉤將使用現有的git功能來解析.gitattributes而不是手動解析腳本中提交的所有文件。

回答

0

這可以使用來自Git-Hooks框架的CheckFile插件的sizelimit指令來完成。我們使用它,它工作得很好。

+0

您如何認識到通過LSF跟蹤文件? 使用文件大小檢查這似乎是可行的:如果通過LSF跟蹤文件,git中的文件只是一個參考,並且很小。 但是,這將如何工作的文件類型檢查? CheckFile可以確定一個文件是否實際上是一個git-lfs引用? 這已經讓我更加接近 - 也許可以添加更多的檢查來實現這一點。 – user2144067

+0

githooks.checkfile.sizelimit檢查實際文件(不是文件類型)。如果你想測試Git-Hooks,請按照教程http://search.cpan.org/~gnustavo/Git-Hooks/lib/Git/Hooks/TUTORIAL.pod。 –