2015-09-16 00:06:27 +08:00
# Awesome Git
A curated list of amazingly awesome Git tools, resources and shiny things.
2015-09-22 23:13:34 +08:00
## Contributing
Pull requests on interesting tools/projects/resources are welcome.
2015-09-16 00:06:27 +08:00
## Table of Contents
- [Awesome Git ](#awesome-git )
- [Tutorial ](#tutorial )
- [Client ](#client )
- [Repository Hosting ](#repository-hosting )
2015-09-22 23:13:34 +08:00
- [Self-Hosted Repository ](#self-hosted-repository )
2015-09-16 00:06:27 +08:00
- [Workflow ](#workflow )
- [Hook management ](#hook-management )
- [Tools ](#tools )
- [Extensions ](#extensions )
## Tutorial
2015-09-22 23:13:34 +08:00
*There are tons of learning material on the Web*
2015-09-16 00:06:27 +08:00
2018-03-29 08:59:53 +02:00
* [Flight rules for Git ](https://github.com/k88hudson/git-flight-rules ) - guide about what to do when things go wrong
2015-09-22 23:13:34 +08:00
* [Try Git ](https://try.github.io/ ) - learn Git in 15 minutes with pseudo-terminal interface
* [Atlassian Git Tutorial ](https://www.atlassian.com/git/tutorials/ ) - comprehensive tutorial on Git
2017-07-27 08:08:55 +02:00
* [Use gitk to understand git ](https://lostechies.com/joshuaflanagan/2010/09/03/use-gitk-to-understand-git/ ) - all important Git terms (commit, commit SHA, branch, merge, rebase) explained using gitk
2015-09-16 00:06:27 +08:00
* [Learn Version Control with Git ](https://www.git-tower.com/learn/ ) - freemium ebook from fournova Software (makers for Tower), associated with paid video course
2018-06-07 14:08:04 +02:00
* [Pro Git ](https://git-scm.com/book/ ) - free Git book, also available on paper (CC BY-NC-SA 3.0)
2015-09-16 00:06:27 +08:00
* [The Git Community Book ](https://schacon.github.io/gitbook/ ) - book built by dozens of people in the Git community
2018-09-27 12:18:24 +02:00
* [Git Pocket Guide ](http://shop.oreilly.com/product/0636920024972 ) - a short O'Reilly book on Git
2015-09-22 23:13:34 +08:00
* [Git Real: Code School ](https://www.codeschool.com/courses/git-real/ ) - paid training course from Code School
2015-09-16 09:38:11 +08:00
* [Git Branching ](http://pcottle.github.io/learnGitBranching/ ) - visual way to learn git branching
2016-10-16 16:40:04 -04:00
* [Learn Git in a Month of Lunches ](https://www.manning.com/books/learn-git-in-a-month-of-lunches ) - tutorial-based book by Manning Publications
2016-10-08 09:09:17 +03:00
* [Git Magic ](http://www-cs-students.stanford.edu/~blynn/gitmagic/index.html ) - short book about Git
* [Git from the bottom up ](https://jwiegley.github.io/git-from-the-bottom-up/ ) - great series of articles about Git
2018-06-07 14:08:04 +02:00
* [Git-It ](https://github.com/jlord/git-it-electron ) - Interative Tutorial App that runs on your Desktop!
2017-07-27 08:03:45 +02:00
* [Git How To ](http://githowto.com ) - step by step intro
2017-07-07 01:31:46 -04:00
* [Migrating to Git LFS ](http://vooban.com/en/tips-articles-geek-stuff/migrating-to-git-lfs-for-developing-deep-learning-applications-with-large-files/ ) - Use Git LFS on an existing repository to manage large files in a better way
2017-10-31 23:41:47 +01:00
* [Explain Git with D3 ](http://onlywei.github.io/explain-git-with-d3/ ) - Visualized few basic Git concepts using D3.js: commit, branch, checkout, reset, revert, merge, rebase, fetch, pull, push, tag
2017-10-31 23:51:32 +01:00
* [Making Sense of Git – A Visual Perspective ](https://appendto.com/2015/06/making-sense-of-git-a-visual-perspective/ ) - Git from a timeline and level perspective and git commands cheatsheet grouped by functionality
2018-06-07 13:38:41 +02:00
* [Git & Git-Flow Cheat Sheet ](https://github.com/arslanbilal/git-cheat-sheet )
* [Git Tips ](https://github.com/git-tips/tips )
2018-06-07 14:08:04 +02:00
* [Interactive/Contextual/Visual Cheat Sheet ](http://ndpsoftware.com/git-cheatsheet.html )
* [The 'Git Pretty' Flow-Chart ](http://justinhileman.info/article/git-pretty/git-pretty.png ) - How to Recover from a Mess
* [Software Carpentry: Git Lessons ](https://software-carpentry.org/lessons/ )
* [The Git Parable ](http://tom.preston-werner.com/2009/05/19/the-git-parable.html ) - GitHub Cofounder's Narrative-style Intro to Git Concepts
* [CodeBasicsHub: Git Video Tutorials ](http://codebasicshub.com/tutorial/git-github/what-is-git )
* [Intermediate Git ](http://www.columbia.edu/~zjn2101/intermediate-git/#1 ) - lower-level, more structural explanation of git concepts
2015-09-16 00:06:27 +08:00
## Client
2015-09-22 23:13:34 +08:00
*Git clients are available on every platform, from mainframe to your mobile device*
2015-09-16 00:06:27 +08:00
2017-10-31 23:40:58 +01:00
* [TortoiseGit ](https://tortoisegit.org/ ) - an easy-to-use Git client on Windows. well-integrated with Windows Explorer.
2015-09-16 00:06:27 +08:00
* [GitHub Desktop ](https://desktop.github.com/ ) - Git Client by GitHub. works with GitHub and GitHub Enterprise seamlessly
2015-09-24 11:48:44 +02:00
* [SourceTree ](https://www.sourcetreeapp.com/ ) - free (in-beer) GUI client. Windows and Mac only
2017-05-05 19:00:01 +03:00
* [Tower ](http://www.git-tower.com/ ) - a popular non-free Git GUI client. Mac and Windows
2015-09-16 00:06:27 +08:00
* [SmartGit ](http://www.syntevo.com/smartgit/ ) - a commercial comprehensive SCM client with Git, SVN, Mercurial. cross-platform (works on Windows, Mac and Linux)
* [RabbitVCS ](http://rabbitvcs.org/ ) - TortoiseSVN inspired graphic tool for version control systems, with Nautilus and Thunar integration
* [gitg ](https://wiki.gnome.org/Apps/Gitg/ ) - a open-source GTK+ GUI client
2015-09-22 23:13:34 +08:00
* [git-cola ](http://git-cola.github.io/ ) - a cross-platform Git GUI client
* [SGit ](https://github.com/sheimi/SGit ) - Git client for Android 4.x
2015-10-07 11:52:21 -04:00
* [Ungit ](https://github.com/FredrikNoren/ungit ) - The easiest way to use git. On any platform. Anywhere.
2016-10-25 14:44:07 -04:00
* [GitKraken ](https://www.gitkraken.com/ ) - a cross Git client for Windows, Mac & Linux. Electron based. Free for non-commercial use and paid Pro version is available.
2016-11-29 21:59:07 +00:00
* [GitUp ](http://gitup.co ) - a clean, minimal Git client. Mac only.
2017-03-06 20:36:32 +03:00
* [GitExtensions ](https://gitextensions.github.io/ ) - a shell extension, a Visual Studio 2010-2015 plugin and a standalone Git repository tool.
2017-10-27 03:52:47 +08:00
* [WorkingCopy ](https://workingcopyapp.com ) - a powerful Git client for iOS. Free with in-app purchase to unlock the ability to push commits.
2018-06-07 13:38:41 +02:00
* [Git Add-ons ](https://github.com/stevemao/awesome-git-addons ) - Enhance the basic `git` CLI
2015-09-16 00:06:27 +08:00
## Repository Hosting
2015-09-22 23:13:34 +08:00
*People have plenty of options to host their source code*
2015-09-16 00:06:27 +08:00
2015-09-22 23:17:09 +08:00
* [GitHub ](http://github.com/ ) - the de-facto git hosting service. Perfect integration with most external services.
2018-06-07 13:38:41 +02:00
* [Awesome GitHub ](https://github.com/phillipadsmith/awesome-github ) - Resources & Learning for GitHub
* [GitHub Cheat Sheet ](https://github.com/tiimgreen/github-cheat-sheet )
* [GitHub Browser Extensions ](https://github.com/stefanbuck/awesome-browser-extensions-for-github )
2015-09-16 00:06:27 +08:00
* [BitBucket ](http://bitbucket.org/ ) - well-known for its free private repository (5 user max).
* [Kiln ](https://www.fogcreek.com/kiln/ ) - paid Git repository hosting service
2015-09-22 23:17:09 +08:00
* [GitLab.com ](https://about.gitlab.com/gitlab-com/ ) - a free Git repository hosting service served by GitLab EE. Unlimited repositories and private collaborators
* [AWS CodeCommit ](https://aws.amazon.com/codecommit/ ) - a SaaS service provided by Amazon Web Service on high availability infrastructure
2016-09-27 09:18:23 +08:00
* [Deveo ](https://deveo.com/ ) - a paid repository hosting service with support for Git, Subversion, Mercurial, WebDAV
2015-09-16 00:06:27 +08:00
## Self-Hosted Repository
2015-09-22 23:13:34 +08:00
*Or you can host the code yourselves*
2015-09-16 00:06:27 +08:00
2015-09-22 23:17:09 +08:00
* [Gitolite ](http://gitolite.com/gitolite/ ) - a simple with fine-grained access control
2015-09-16 00:06:27 +08:00
* [GitHub Enterprise ](https://enterprise.github.com/ ) - self-hosted solution provided from GitHub
2016-09-22 13:24:17 +08:00
* [Bitbucket Server ](https://www.atlassian.com/software/bitbucket/server ) - self-hosted refrom Atlassian. Good integration with JIRA and other Atlassian products
2015-09-22 23:17:09 +08:00
* [GitLab CE/EE ](https://gitlab.com/ ) - a popular open-source Git (CE) with paid support option (EE).
2018-09-27 12:16:09 +02:00
* [Upsource ](https://www.jetbrains.com/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
2015-09-22 23:17:09 +08:00
* [GitBucket ](https://github.com/takezoe/gitbucket/ ) - a GitHub clone powered by Scala.
* [Gogs ](http://gogs.io/ ) - a self-hosted Git Service written in Go.
2018-06-29 21:27:46 +02:00
* [Gitea ](https://gitea.io/ ) - a community managed fork of Gogs, lightweight code hosting solution written in Go.
2016-09-27 09:18:23 +08:00
* [GitBlit ](http://gitblit.com/ ) - Pure Java Stack for managing, view, and serving Git repositories.
* [Apache Allura ](https://allura.apache.org/ ) - an open source implementation of project hosting platform
* [Phabricator ](https://www.phacility.com/ ) - an integrated set of powerful tools to help companies build higher quality software
* [RhodeCode CE/EE ](https://rhodecode.com/ ) - a platform delivering enterprise source code management
2018-10-08 12:58:47 -06:00
* [Pagure ](https://pagure.io/pagure ) - a flask based git forge used to host [the Fedora Project sources ](https://src.fedoraproject.org/ ).
2015-09-16 00:06:27 +08:00
## Workflow
2015-09-22 23:13:34 +08:00
*Inexpensive branching allows people adopt workflows other than the classic centralilzed workflow*
2015-09-16 00:06:27 +08:00
2015-09-16 00:31:32 +08:00
* [Pro Git - Distributed Workflows ](https://git-scm.com/book/it/v2/Distributed-Git-Distributed-Workflows )
* [Atlassian Git Tutorial - Comparing Workflows ](https://www.atlassian.com/git/tutorials/comparing-workflows )
2015-09-22 23:13:34 +08:00
* [Gitflow ](http://nvie.com/posts/a-successful-git-branching-model/ ) - the most well-known Git workflow model
* [GitHub flow ](http://scottchacon.com/2011/08/31/github-flow.html ) - a simple branching model with a single master
* [GitLab flow ](https://about.gitlab.com/2014/09/29/gitlab-flow/ )
* [Git DMZ Flow ](https://gist.github.com/djspiewak/9f2f91085607a4859a66 )
2015-09-16 00:06:27 +08:00
## Hook management
*Git provide hooks at commit/push phrase, allowing integration with and code quality checking tool and Continuous Integration (CI)*
2015-09-22 23:17:09 +08:00
* [pre-commit ](http://pre-commit.com/ ) - a framework for managing and maintaining multi-language pre-commit hooks from Yelp. Extensive support for multiple programming language.
* [Overcommit ](https://github.com/brigade/overcommit/ ) - a extendable Git hook manager written with Ruby.
2015-09-22 23:13:34 +08:00
* [git-hooks ](https://github.com/icefox/git-hooks/ ) - tool to manage project, user, and global Git hooks
2016-09-22 13:24:17 +08:00
* [quickhook ](https://github.com/dirk/quickhook/ ) - a fast, Unix'y, opinionated Git hook runner
2018-04-13 16:15:18 +08:00
* [husky ](https://github.com/typicode/husky ) - Git hooks for Node.js, manage your hooks from your package.json
* more on https://githooks.com/
2015-09-16 00:06:27 +08:00
## Tools
2015-09-22 23:13:34 +08:00
*Various tools for daily operations*
2015-09-16 00:06:27 +08:00
2017-07-05 19:48:28 +02:00
* [awesome-git-addons ](https://github.com/stevemao/awesome-git-addons ) - lists more than 20 git addons including all available commands
2015-09-16 00:06:27 +08:00
* [myrepos ](https://myrepos.branchable.com/ ) - a tool to manage multiple version control repositories
2016-10-04 00:53:31 +08:00
* [mu-repo ](http://fabioz.github.io/mu-repo/ ) - a tool to help in dealing with multiple git repositories
* [gr ](http://mixu.net/gr/ ) - a tool for managing multiple git repositories
2015-09-16 00:06:27 +08:00
* [BFG Repo-Cleaner ](https://rtyley.github.io/bfg-repo-cleaner/ ) - a simpler, faster alternative to git-filter-branch for cleansing bad data out of your Git repository history
2015-09-22 23:13:34 +08:00
* [GitIgnore Collection ](https://github.com/github/gitignore ) - collection of gitignore files for various programming language
* [etckeeper ](http://etckeeper.branchable.com/ ) - a collection of tools to let /etc be stored in a git repository
2016-07-26 19:39:40 +02:00
* [git-extras ](https://github.com/tj/git-extras ) – git utilities adding useful git commands.
2016-11-29 09:13:30 -08:00
* [git-extra-commands ](https://github.com/unixorn/git-extra-commands ) - Another collection of useful git commands.
2017-05-05 10:13:02 -04:00
* [git-follow ](https://github.com/nickolasburr/git-follow ) - a tool for following lifetime changes of a file throughout the history of a Git repository.
2016-09-27 09:18:23 +08:00
* [Gitrob ](https://github.com/michenriksen/gitrob ) - a command line tool to find sensitive information lingering in publicly available files on GitHub
* [gitFS ](https://www.presslabs.com/gitfs/ ) - a FUSE file system that fully integrates with git
2016-10-16 16:40:04 -04:00
* [Gitless ](http://gitless.com/ ) - an experimental version of Git that changes some of Git's underlying concepts
2016-10-28 13:41:38 +01:00
* [ghq ](https://github.com/motemen/ghq ) — Organization for remote repositories
2017-10-31 13:25:01 -02:00
* [bash-git-prompt ](https://github.com/magicmonty/bash-git-prompt ) - An informative and fancy bash prompt for Git users
2018-08-06 01:36:11 +08:00
* [conventional-changelog ](https://github.com/conventional-changelog/conventional-changelog ) - a set of tools for parsing [conventional commit ](https://conventionalcommits.org/ ) messages from git histories
2015-10-03 11:21:40 +08:00
2015-09-16 00:06:27 +08:00
## Extensions
2015-09-22 23:13:34 +08:00
*Git is designed for source control management. but people extend the idea and push version control to everywhere*
2015-09-16 00:06:27 +08:00
2015-09-22 23:13:34 +08:00
* [Git Large File Storage ](https://git-lfs.github.com/ ) - practical solution for versioning large files. supported by GitHub
2017-06-21 14:50:16 -05:00
* [Git Virtual File System or GVFS ](https://github.com/Microsoft/GVFS ) - solution for managing very large Git repository while maintaining speed and efficiency of most operations. in developement by Microsoft.
2015-09-22 23:13:34 +08:00
* [git-annex ](https://git-annex.branchable.com/ ) - allow managing large binaries among machines, as if operation a normal git repository. possible to creates a synchronised folder with [git-annex assistant ](https://git-annex.branchable.com/assistant/ ).