Вы можете вызывать git в подоболочке после каждой загрузки.
Но я не думаю, что использование VCS является хорошим решением для управления версиями документов, особенно в веб-приложениях.Это потому, что с офисными документами вы будете использовать в основном двоичные данные.VCS отстой (без исключений), когда приходит к двоичным данным.Вы не сможете делать какие-либо различия, и управление метаданными не подходит для таких вещей - автор commit в основном привязан к конкретной учетной записи (и вы будете использовать, вероятно, одну системную учетную запись для git), никакой дополнительной информации (кроме базового файла)информация: размер, разрешения, ctime) хранится, поэтому вам придется хранить ее (авторство, разрешения для пользователей веб-приложений, дополнительные метаданные) рядом с собой.Также обратите внимание, что несколько пользователей могут фиксировать данные одновременно, поэтому в вашей версии будут ветки.Когда у вас будет огромный набор данных (и с бинарными офисными файлами он может появиться быстрее, чем вы думаете), вы не сможете разбить такой репозиторий.
IMO, использование VCS здесь дает вам очень небольшой выигрыш и вводит дополнительныепроблемы.
Я бы посоветовал хранить метаданные в базе данных (имя файла, ревизии, дополнительные материалы) и хранить ревизии файлов на диске.Храните каждый файл с ревизиями в отдельном, уникальном каталоге.Один совет: не используйте имена файлов, полученные при загрузке.Используйте хэш-функции для вычисления уникального имени на основе содержимого и метаданных.