About the Git architecture
When using Git, each writer's computer stores a locally cloned Git repository that contains all files managed under version control. Writers make local changes to these files, and then push those changes to a remote server. The server aggregates all incoming modifications, and then shares the resulting updates with participating writers when they update their cloned repositories, as shown:
The Git server hosts what's called a bare repository (that is, a repository that doesn't store its own working directory for making changes). When setting up Git, you have the option of configuring the Git server on a computer in your own environment that is accessible using your local area network, or using an externally hosted Git service, such as github.com. The Git server can communicate with the client computers using any of the following protocols:
- SSH - SSH allows computers to communicate using data that is automatically encrypted when sent, and automatically decrypted when it reaches its intended recipient. To use this protocol, the host computer must be running an SSH Server. We'll use this protocol in later procedures for setting up version control.
- HTTP - HTTP allows computers to communicate using unencrypted data. To use this protocol, the host computer must be running a Web server (such as IIS or Apache). The IIS server is an optional feature of all versions of Windows Server.
- Local - The local protocol allows computers to communicate using a shared file system (such as an NFS mount).
- Git - The Git software also includes its own protocol that allows computers to communicate without authentication and using unencrypted data. For more information, see Git on the Server - The Protocols.
After the initial configuration, many authoring tools (including Flare) can integrate directly with Git to perform version control operations from within the tool (such as staging file changes, committing them to the local repository, and pushing them to the remote server). Alternatively, you can perform version control operations outside of the authoring tool using a Git utility with a graphical interface or using command-line operations. This tutorial describes the following server options for configuring Git version control:
Tip If you prefer an easy setup and a low-maintenance Git server solution, then use GitHub to host your repository (many of the other procedures provided in this tutorial assume that you are using this option).
Note Hosting a Git server in your own environment requires ongoing system maintenance and a willingness to setup and maintain the appropriate protocol services, accounts, and permissions required to access the server from client computers in your environment. If you select this option, you'll likely need the assistance of a system administrator to perform configuration tasks that aren't discussed in this tutorial.