Basic Git Usage

    Version as of 20:53, 21 Oct 2018

    to this version.

    Return to Version archive.

    View current version

    Git is a very powerful source code management system. Here, we will quite deliberately only cover the basic stuff necessary for Gromacs development and try to keep it simple. If you want to learn more, including how to set up your own repository for a non-gromacs project, consult the official git documentation instead. 

    Getting Git

    Just as CVS, Git is a (newer) program you need to have installed to be able to use it. Check if you have it with the command "which git". Many modern Linux systems already come with it preinstalled, or you might be able to get it in a single step with a command like "sudo apt-get install git-core". Otherwise, you can find both binaries and source code from the official git site. For reference, the Gromacs Git server currently runs version, but you should be able to use interact with it using older versions too. 

    Understanding servers & repositories

    The master Gromacs source code repository is available from the server, and there will soon be a public read-only backup available at that is updated automatically (useful if the main server is unreachable for some reason). On both of these servers, there are a number of independent repositories. If you are used to CVS, a Git repository roughly corresponds to a CVS module. On the main server we have at least the repositories:

    • gromacs.git - The Gromacs source code (corresponds to the old CVS 'gmx' module)
    • manual.git - The Gromacs manual latex source
    • regressiontests.git - A suite of regression tests that (old 'gmxtest' module)
    • libxdrfile.git - A separate library to read/write our XDR compressed data files

    However, in contrast to CVS you don't interact directly with our repositories when you modify code! When you "check out", you really make a complete clone of the repository, and then interact with our own copy. Developers with write permission can then separately "push" their changes to the main repository, after which they will show up to everybody. The beauty of this is that anybody can create a public repository where they share their Gromacs changes, and you call also "pull" in modifications from multiple other repositories.

    In addition to the "official" Gromacs repositories, many of the core developers will also have their own public repository available on the server, which you access in a slightly different way (more below). It is also straightforward to set up your own public repository at a place like (free for open source).





    Page last modified 19:40, 17 Jun 2009 by lindahl