A curated list of amazingly awesome Git tools, resources and shiny things.
Pull requests on interesting tools/projects/resources are welcome.
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 
.gitignoreAll about.gitignore. - No Bullsh*t Git - free and complete explanation of git internals and the 
.git/directory. 
Style guide when you work with git
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 
gitCLI - 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.
 
People have plenty of options to host their source code
- GitHub - the de-facto git hosting service. Perfect integration with most external services.
- Awesome GitHub - Resources & Learning for GitHub
 
 - 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
 
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.
 
Inexpensive branching allows people adopt workflows other than the classic centralized workflow
- Pro Git - Distributed Workflows
 - Atlassian Git Tutorial - Comparing Workflows
 - Patterns for Managing Source Code Branches
 - Branching Models article from Nyx
 
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
 
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.
 
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.
 
