(If all you want is read-only access, see the Freeciv source code repository page.)

Note that at the time of writing, Github is new to us, so we're still working out how best to collaborate.

Git tree access[]

  1. Introduce yourself to the community.
    If you're a translator, subscribe to and send an introductory email to the freeciv-i18n mailing list, where you tell us a little about yourself and which language you want to take over translation of or add to Freeciv. You can find information on how to subscribe to our mailing lists under Community Forums.
  2. Register a free account on
  3. Request access from us. (There doesn't seem to be a way to do this through Github, so you'll have to email us, including your Github username.)
  4. You'll most likely want to use the SSH access method. Follow Github's instructions on this. (You can set this up before you get access to the Freeciv project.)

Once you have done this, you should be able to check out the history with a command like

git clone

Then you have to select which branch are you going to work in with

git checkout S2_5


git checkout S2_6

A full introduction to Git is outside the scope of this page (you could try this interactive tutorial), but in summary, if you change a file and want to commit it, you do something like

git add translations/freeciv/kw.po


git commit -m "Updating my language translation"

and finally

git push

All patches must be submitted to the ticket tracker for review before committing; see commit rules. The Freeciv project does not currently use 'pull requests' for tracking patches.

The Freeciv repository does not currently accept merge commits (those with more than one parent); if upstream has changed since you started your work, you'll need to rebase your work on top of the head of the remote branch.

The Freeciv repository makes more heavy use of branches than many projects, and you may well need to work with multiple branches. If you have a new enough version of the git client (2.5 or later), you will probably want to use the git worktree feature to make this more pleasant.