Insbesondere bei der Software-Entwicklung im Team oder auch alleine werden Versionskontrollsysteme (VCS) eingesetzt. Sie ermöglichen das gleichzeitige Arbeiten mehrerer Parteien an einem Projekt durch das "Kopieren-Verändern-Zusammenführen"-Modell und stellen zudem auf komfortable Weise Versionierung bereit, sodass man stets zu beliebigen Punkten im Entwicklungsprozess zurückspringen kann. git weist hierbei einige Besonderheiten auf, vor allem weil es ein verteiltes VCS ist, das heißt jeder Entwickler hat in der Regel zunächst ein lokales Repository, welches er dann mit anderen Repositories im Netz synchronisieren kann.