A curated list of amazingly awesome Git tools, resources and shiny things
Find a file
2025-04-30 23:29:10 +07:00
cover.png add cover image 2022-04-14 07:40:59 +00:00
LICENSE Create LICENSE 2019-12-16 22:15:31 +08:00
README.md Add git games 2025-04-30 23:29:10 +07:00

Cover image

Awesome Git

A curated list of amazingly awesome Git tools, resources and shiny things.

Contributing

Pull requests on interesting tools/projects/resources are welcome.

Table of Contents

Tutorial

There are tons of learning material on the Web

Games

  • GitByBit
  • Git Branching - visual way to learn git branching
  • git gud - Wanna git gud? Then get git-gud, and git gud at git!
  • git-sim - Visually simulate Git operations in your own repos with a single terminal command.
  • Devlands - Learn Git comfortably. Use Git confidently.
  • A Git Choose Your Own Adventure - I never found a git tutorial I didn't understand while doing it. Just sometimes those tutorials didn't line up very well with my actual work. This git help in the form of a choose your own adventure was a life saver when I was first starting out.

Style Guide

Style guide when you work with git

Client

Git clients are available on every platform, from mainframe to your mobile device

  • GitHub Desktop - Git Client by GitHub. works with GitHub and GitHub Enterprise seamlessly
  • SourceTree - free (in-beer) GUI client. Windows and Mac only
  • Tower - a popular non-free Git GUI client. Mac and Windows
  • GitKraken - a cross Git client for Windows, Mac & Linux. Electron based. Free for non-commercial use and paid Pro version is available.
  • Fork - An awesome and free git client for macOS and Windows
  • TortoiseGit - an easy-to-use Git client on Windows. well-integrated with Windows Explorer.
  • SmartGit - a commercial comprehensive SCM client with Git, SVN, Mercurial. cross-platform (works on Windows, Mac and Linux)
  • RabbitVCS - TortoiseSVN inspired graphic tool for version control systems, with Nautilus and Thunar integration
  • gitg - a open-source GTK+ GUI client
  • git-cola - a cross-platform Git GUI client
  • SGit - Git client for Android 4.x
  • Ungit - The easiest way to use git. On any platform. Anywhere.
  • GitUp - a clean, minimal Git client. Mac only.
  • GitExtensions - a shell extension, a Visual Studio 2010-2015 plugin and a standalone Git repository tool.
  • WorkingCopy - a powerful Git client for iOS. Free with in-app purchase to unlock the ability to push commits.
  • Git Add-ons - Enhance the basic git CLI
  • Magit - A Git porcelain inside Emacs
  • Vershd - a free for personal use effortless Git GUI for Windows, Mac, & Linux.
  • lazygit - A simple terminal UI for git commands, written in Go
  • Gittyup - a graphical Git client designed to help you understand and manage your source code history.

Repository Hosting

People have plenty of options to host their source code

  • GitHub - the de-facto git hosting service. Perfect integration with most external services.
  • BitBucket - well-known for its free private repository (5 user max).
  • Jetbrains Space - Jetbrains all-in-one solution for software teams, with IM, ticket tracking, source control.
  • GitLab.com - a free Git repository hosting service served by GitLab EE. Unlimited repositories and private collaborators
  • Azure DevOps - cloud service for software development formerly known as Visual Studio Team Services, Visual Studio Online and Team Foundation Service Preview
  • AWS CodeCommit - a SaaS service provided by Amazon Web Service on high availability infrastructure
  • Kiln - paid Git repository hosting service
  • Deveo - a paid repository hosting service with support for Git, Subversion, Mercurial, WebDAV

Self-Hosted Repository

Or you can host the code yourselves

  • Gitolite - a simple with fine-grained access control
  • GitHub Enterprise - self-hosted solution provided from GitHub
  • Bitbucket Server - self-hosted refrom Atlassian. Good integration with JIRA and other Atlassian products
  • GitLab CE/EE - a popular open-source Git (CE) with paid support option (EE).
  • Upsource - recent offer from Jetbrains, a famous developer-oriented software company. Code repository hosting feature pending. Free for 10 users. Good integration with YouTrack and TeamCity
    • Upsource is no longer available as a commercial product as of February 1, 2022.*
  • Gogs - a self-hosted Git Service written in Go.
  • Gitea - a community managed fork of Gogs, lightweight code hosting solution written in Go.
  • Forgejo - a community managed fork of Gitea, started after Gitea changed ownership.*
  • onedev - Self-hosted Git Server with Kanban and CI/CD
  • GitBucket - a GitHub clone powered by Scala.
  • GitBlit - Pure Java Stack for managing, view, and serving Git repositories.
  • Apache Allura - an open source implementation of project hosting platform
  • Phabricator - an integrated set of powerful tools to help companies build higher quality software
    • Effective June 1, 2021: Phabricator is no longer actively maintained.*
  • RhodeCode CE/EE - a platform delivering enterprise source code management
  • Soft Serve - a tasty, self-hostable Git server for the command line
  • Harness Open Source - Open Source code hosting with secret scanning based on Gitleaks. Self-hosted and Apache-2.0 license.

Workflow

Inexpensive branching allows people adopt workflows other than the classic centralized workflow

Comparing workflows

No single workflow fits everyone's need

  • Gitflow - the most well-known Git workflow model
  • GitHub flow - a simple branching model with a single master
  • GitLab flow
  • Git DMZ Flow
  • Aoneflow - an interesting branch model which delays the final merge to production branch, adopted by Alibaba. more article (in Chinese text) at 1, 2
  • Agit-flow - Inspired by Gerrit workflow, Agit-flow is a centralized git workflow and used in Alibabas internal source code platform

Hook management

Git provide hooks at commit/push phrase, allowing integration with and code quality checking tool and Continuous Integration (CI)

  • pre-commit - a framework for managing and maintaining multi-language pre-commit hooks.
  • husky - modern native Git hooks made easy.
  • Overcommit - a extendable Git hook manager written with Ruby.
  • lefthook - fast and powerful Git hooks manager for any type of project.
  • Mookme - A simple and easy-to-use, yet powerful and language agnostic git hook for monorepos.
  • quickhook - a fast, Unix'y, opinionated Git hook runner.
  • more on https://githooks.com/

Tools

Various tools for daily operations

  • awesome-git-addons - lists more than 20 git addons including all available commands
  • myrepos - a tool to manage multiple version control repositories
  • mu-repo - a tool to help in dealing with multiple git repositories
  • multi-gitter - a tool to make changes in multiple repositories simultaneously
  • gitwalk - Bulk processing of git repos
  • gr - a tool for managing multiple git repositories
  • BFG Repo-Cleaner - a simpler, faster alternative to git-filter-branch for cleansing bad data out of your Git repository history
  • GitIgnore Collection - collection of gitignore files for various programming language
  • etckeeper - a collection of tools to let /etc be stored in a git repository
  • git-extras git utilities adding useful git commands.
  • git-extra-commands - Another collection of useful git commands.
  • git-follow - a tool for following lifetime changes of a file throughout the history of a Git repository.
  • Gitrob - a command line tool to find sensitive information lingering in publicly available files on GitHub
  • gitFS - a FUSE file system that fully integrates with git
  • Gitless - an experimental version of Git that changes some of Git's underlying concepts
  • ghq — Organization for remote repositories
  • bash-git-prompt - An informative and fancy bash prompt for Git users
  • conventional-changelog - a set of tools for parsing conventional commit messages from git histories
  • release-it - Automate releases for Git repositories and/or npm packages. Changelog generation, GitHub/GitLab releases, etc.
  • gickup - Backup repos from various hosters to local or other hosters.
  • git-absorb - git commit --fixup, but automatic
  • jc --git-log - Convert your git log to JSON.
  • gitbackup - a tool to backup your Bitbucket, GitHub and GitLab repositories.
  • soba - scheduled backups of repositories from popular providers with change detection.
  • tig - text-mode interface for git.

Extensions

Git is designed for source control management. but people extend the idea and push version control to everywhere

  • Git Large File Storage - practical solution for versioning large files. supported by GitHub
  • Git Virtual File System or GVFS - solution for managing very large Git repository while maintaining speed and efficiency of most operations. in developement by Microsoft.
  • git-annex - allow managing large binaries among machines, as if operation a normal git repository. possible to creates a synchronised folder with git-annex assistant.