Git/Setting up a Server

A Git server is not supposed to host any uncommitted file, so its repositories should be initialized with "bare":

Now its files are encrypted and can't be read as flat files from the server.

The distributed repositories can then be initialized with, updated with  , and submitted to the server with.

To avoid any user to erase the server branches when pushing, the branches can be locked, forcing the users to create some s with their changes to validate before merging.