Skip to main content
Share Your Experience: Take the 2024 Developer Survey

is for Emacs support of Git, the distributed version control system. Emacs `version-control` feature supports many systems besides Git. Additional extensions, such as `Magit`, also provide extensive Git support. Therefore use additional tags besides `git` for Git related questions.

Git is an open-source distributed version control system (DVCS) with an emphasis on speed. Git was initially designed and developed by Linus Torvalds for Linux kernel development, now it is maintained by Junio Hamano. Every Git working directory contains a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server.

There are many resources and tutorials available free online for Git beginners; see the bottom of this page for links to some of these resources.


  • Strong support for non-linear development
  • Distributed development
  • Compatibility with existing systems/protocols
  • Efficient handling of large projects
  • Cryptographic authentication of history
  • Toolkit-based design
  • Pluggable merge strategies
  • Garbage accumulates unless collected
  • Periodic explicit object packing

Data structures

git - data workflow

External Links

Internal Links


Working with the code

Tagging, branching, releases, baselines

Git Clients

  • msysgit - Cross platform, included with Git
  • gitk - Cross platform history viewer, included with Git
  • gitnub - Mac OS X
  • gitx - Mac OS X history viewer
  • smartgit - Cross platform, commercial, beta
  • tig - console GUI for Linux
  • qgit - GUI for Windows, Linux
  • Git Extensions - package for Windows, includes friendly GUI
  • SourceTree - A free Git & Mercurial client for Windows or Mac
  • posh-git - A Windows PowerShell environment for Git

Any other common tasks a beginner should know?

Other Git beginner's references

Delving into Git

Comparison of revision control software