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
Try Git - learn Git in 15
minutes with pseudo-terminal interface
Atlassian Git
Tutorial - comprehensive tutorial on Git
Learn Version Control
with Git - freemium ebook from fournova Software (makers for Tower),
associated with paid video course
Pro Git - free Git book,
also available on paper (CC BY-NC-SA 3.0)
Learn how to use Git -
free tutorials and resources to help you learn the basics of Git
The Git Community
Book - book built by dozens of people in the Git community
Git Pocket
Guide - a short O’Reilly book on Git
Git Real:
Code School - paid training course from Code School
Git
Branching - visual way to learn git branching
Learn
Git in a Month of Lunches - tutorial-based book by Manning
Publications
Git
Magic - short book about Git
Git
from the bottom up - great series of articles about Git
Git-It -
Interactive Tutorial App that runs on your Desktop!
Git How To - step by step
intro
Migrating
to Git LFS - Use Git LFS on an existing repository to manage large
files in a better way
Explain Git
with D3 - Visualized few basic Git concepts using D3.js: commit,
branch, checkout, reset, revert, merge, rebase, fetch, pull, push,
tag
Making
Sense of Git – A Visual Perspective - Git from a timeline and level
perspective and git commands cheatsheet grouped by functionality
Git &
Git-Flow Cheat Sheet
Git Tips
Interactive/Contextual/Visual
Cheat Sheet
The
‘Git Pretty’ Flow-Chart - How to Recover from a Mess
Software
Carpentry: Git Lessons
The
Git Parable - GitHub Cofounder’s Narrative-style Intro to Git
Concepts
CodeBasicsHub:
Git Video Tutorials
Intermediate
Git - lower-level, more structural explanation of git concepts
Fork and Pull Request
Workflow - Very nicely explained, simple and crisp way of
understanding git fork and pull request workflow.
Git School
Dude - It’s a YouTube channel with a lot of great git videos. It
covers everything from the basics to advanced Git topics.
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.
On
undoing, fixing, or removing commits in git - fairly comprehensive
guide to recovering from what you did not mean to do when using git
Deconstructing
a git commit - A blog explaining how git creates and stores commit
histories.
Flight rules
for Git - guide about what to do when things go wrong
Use
gitk to understand git - all important Git terms (commit, commit
SHA, branch, merge, rebase) explained using gitk
Git
Cherry-pick and its usages - A blog explaining how command git
cherry-pick works.
The
ultimate guide to .gitignore All about
.gitignore.
No Bullsh*t Git
- free and complete explanation of git internals and the
.git/ directory.
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 Alibaba’s 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/
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 .
git.md Github