Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Git In the Trenches
branch: master
Failed to load latest commit information.
html Added links for downloads
images Minor changes to cover and section9
scripts Added Week tags
.gitignore Some cleanup on make files etc
Makefile Mobi alteration
README.mkd README: ttf-linux-libertine needs to get installed as well
TODO TODO fixing
ack.tex Added Week tags
afterhours1.tex Removed blank lines affecting html conversion
afterhours2.tex Removed spurious right-brace
afterhours3.tex Removed blank lines affecting html conversion
afterhours4.tex Fix minor wording/typos
afterhours5.tex Use capital rather than capitol
afterhours6.tex More changes from the book proof (physical)
afterhours7.tex Fix wording/typos
afterhours8.tex Added a TODO item and finished AF8 Added builder - do not use unless you are me
chap1.tex Added Week tags
chap2.tex Added Week tags
chap3.tex Added Week tags
chap4.tex Added Week tags
chap5.tex Added Week tags
chap6.tex Added Week tags
chap7.tex Added Week tags
chap8.tex Added Week tags
chap9.tex Minor changes to cover and section9
gitt.cls * Fixed symmetric bug with print edition.
gitt.tex Work on script to autodetect layout
index.tex Index always starts on rhs page.
intro.tex Small wording fix to final paragraph of intro
setup.tex Define Git version in setup.tex


Git In The Trenches

Git In The Trenches, or GITT is designed to be a book that focusses on teaching people to use Git by associating with scenarios that are experienced by a fictional company called Tamagoyaki Inc. Through reading about their day to day lives, the reader will learn not only how to use Git, but why version control systems are important and how to implement them within an organisation.

Book Contents

The summary below shows a list of already complete chapters and items which are pending. GITT now covers all 21 of the most commonly used Git commands.

  1. Analysing VCS requirements
  2. Initialising a repo, adding files, removing files, committing, resetting
  3. Logging, diffing, tagging, viewing historical data
  4. Branching, merging, deleting branch, recovering branch, dealing with conflicts
  5. GUI usage
  6. Stashing, Cloning
  7. Networking, Rebasing
  8. Patching, Bisecting, Filterbranching, subtree, modules

After Hours

  1. History of version control, svn, cvs, git
  2. Simple Git internals, how commits are stored
  3. Indepth look at diff and how tags are stored
  4. Merging algorithms
  5. Splitting up commits, line by line, hunk committing
  6. Push and pull settings, reference discussion
  7. Instaweb
  8. Hooks

Building the Book

GITT is written using the LaTeX language to be able to generate the PDFs easily and without artifacts. If you wish to read GITT whilst it is in development phase, you have 3 options.

  1. Read the LaTeX source, which really isn't as bad as it sounds
  2. Use make pdf to use latex to build the pdf, you will need to have pdflatex installed for this
    • For ubuntu users, run sudo apt-get install texlive-latex-base texlive-latex-extra texlive-fonts-recommended texlive-xetex ttf-linux-libertine to get xelatex and the other files required to build
  3. An older PDF version of the book can be found here


It is the intention of the author to make the book available freely online, and eventually offer a printed version via a self publishing site online. If someone out there thinks the book would do well to be published by a proper print publisher and can help make this happen, please get in contact. However the book will remain free online no matter what.


The GITT project would love for people to branch off and make alterations to the text, or even start to create translations. Currently the book is written in LaTeX, but it isn't hard to learn. You can see the source files in plain text and edit them quite easily. Also, we are looking for situations in which you may have found yourself whilst using Git, whether you managed to resolve them or not. GITT is rather scenario based sometimes, so we need situations in which to place the employees at Tamagoyaki Inc. Spelling fixes are always welcome, as are general comments on the text itself.

Anyone who contributes will be added to the Acknowledgement section if they wish it. If I miss you out, please do not be offended, just nudge me gently :)

Something went wrong with that request. Please try again.