33 KiB
33 KiB
!Cover image (cover.png)
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
- Awesome Git (#awesome-git)
- Tutorial (#tutorial)
- Style Guide (#style-guide)
- Client (#client)
- Repository Hosting (#repository-hosting)
- Self-Hosted Repository (#self-hosted-repository)
- Workflow (#workflow)
- Hook management (#hook-management)
- Tools (#tools)
- Extensions (#extensions)
Tutorial
There are tons of learning material on the Web
⟡ 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
⟡ Learn Version Control with Git (https://www.git-tower.com/learn/) - freemium ebook from fournova Software (makers for Tower), associated with paid video course
⟡ Pro Git (https://git-scm.com/book/) - free Git book, also available on paper (CC BY-NC-SA 3.0)
⟡ Learn how to use Git (https://www.deployhq.com/git) - free tutorials and resources to help you learn the basics of Git
⟡ The Git Community Book (https://schacon.github.io/gitbook/) - book built by dozens of people in the Git community
⟡ Git Pocket Guide (https://shop.oreilly.com/product/0636920024972) - a short O'Reilly book on Git
⟡ Git Real: Code School (https://www.codeschool.com/courses/git-real/) - paid training course from Code School
⟡ Git Branching (https://pcottle.github.io/learnGitBranching/) - visual way to learn git branching
⟡ 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
⟡ 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
⟡ Git-It (https://github.com/jlord/git-it-electron) - Interactive Tutorial App that runs on your Desktop!
⟡ Git How To (https://githowto.com) - step by step intro
⟡ Migrating to Git LFS (https://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
⟡ Explain Git with D3
(https://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
⟡ 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
⟡ Git & Git-Flow Cheat Sheet (https://github.com/arslanbilal/git-cheat-sheet)
⟡ Git Tips (https://github.com/git-tips/tips)
⟡ Interactive/Contextual/Visual Cheat Sheet (https://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 (https://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
⟡ Fork and Pull Request Workflow (https://github.com/susam/gitpr) - Very nicely explained, simple and crisp way of understanding git fork and pull request workflow.
⟡ Git School Dude (https://www.youtube.com/c/DanGitschoolDude) - 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 (https://sethrobertson.github.io/GitFixUm/fixup.html) - 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
(https://sethrobertson.github.io/GitFixUm/fixup.html) - fairly comprehensive guide to recovering from what you did not mean to do when using git
⟡ Deconstructing a git commit (https://krishnabiradar.com/blogs/deconstructing-a-git-commit/) - A blog explaining how git creates and stores commit histories.
⟡ Flight rules for Git (https://github.com/k88hudson/git-flight-rules) - guide about what to do when things go wrong
⟡ 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
⟡ Git Cherry-pick and its usages (https://www.loginradius.com/blog/async/git-cherry-pick/) - A blog explaining how command git cherry-pick works.
⟡ The ultimate guide to (https://github.com/groda/the_ultimate_gitignore_guide) All about .gitignore.
Style Guide
Style guide when you work with git
⟡ Udacity Nanodegree Style Guide (https://udacity.github.io/git-styleguide/index.html)
Client
Git clients are available on every platform, from mainframe to your mobile device
⟡ GitHub Desktop (https://desktop.github.com/) - Git Client by GitHub. works with GitHub and GitHub Enterprise seamlessly
⟡ SourceTree (https://www.sourcetreeapp.com/) - free (in-beer) GUI client. Windows and Mac only
⟡ Tower (https://www.git-tower.com/) - a popular non-free Git GUI client. Mac and Windows
⟡ 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.
⟡ Fork (https://git-fork.com) - An awesome and free git client for macOS and Windows
⟡ TortoiseGit (https://tortoisegit.org/) - an easy-to-use Git client on Windows. well-integrated with Windows Explorer.
⟡ SmartGit (https://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
⟡ git-cola (https://git-cola.github.io/) - a cross-platform Git GUI client
⟡ SGit (https://github.com/sheimi/SGit) - Git client for Android 4.x
⟡ Ungit (https://github.com/FredrikNoren/ungit) - The easiest way to use git. On any platform. Anywhere.
⟡ GitUp (http://gitup.co) - a clean, minimal Git client. Mac only.
⟡ GitExtensions (https://gitextensions.github.io/) - a shell extension, a Visual Studio 2010-2015 plugin and a standalone Git repository tool.
⟡ WorkingCopy (https://workingcopyapp.com) - a powerful Git client for iOS. Free with in-app purchase to unlock the ability to push commits.
⟡ Git Add-ons (https://github.com/stevemao/awesome-git-addons) - Enhance the basic git CLI
⟡ Magit (https://magit.vc) - A Git porcelain inside Emacs
⟡ Vershd (https://vershd.io/) - a free for personal use effortless Git GUI for Windows, Mac, & Linux.
⟡ lazygit (https://github.com/jesseduffield/lazygit) - A simple terminal UI for git commands, written in Go
Repository Hosting
People have plenty of options to host their source code
⟡ GitHub (https://github.com/) - the de-facto git hosting service. Perfect integration with most external services.
* **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)
⟡ BitBucket (https://bitbucket.org/) - well-known for its free private repository (5 user max).
⟡ Jetbrains Space (https://www.jetbrains.com/space/) - Jetbrains all-in-one solution for software teams, with IM, ticket tracking, source control.
⟡ GitLab.com (https://about.gitlab.com/gitlab-com/) - a free Git repository hosting service served by GitLab EE. Unlimited repositories and private collaborators
⟡ Azure DevOps (https://azure.microsoft.com/en-us/services/devops/) - cloud service for software development formerly known as Visual Studio Team Services, Visual Studio Online and Team
Foundation Service Preview
⟡ AWS CodeCommit (https://aws.amazon.com/codecommit/) - a SaaS service provided by Amazon Web Service on high availability infrastructure
⟡ Kiln (https://www.fogcreek.com/kiln/) - paid Git repository hosting service
⟡ Deveo (https://deveo.com/) - a paid repository hosting service with support for Git, Subversion, Mercurial, WebDAV
Self-Hosted Repository
Or you can host the code yourselves
⟡ Gitolite (https://gitolite.com/gitolite/) - a simple with fine-grained access control
⟡ GitHub Enterprise (https://enterprise.github.com/) - self-hosted solution provided from GitHub
⟡ Bitbucket Server (https://www.atlassian.com/software/bitbucket/server) - self-hosted refrom Atlassian. Good integration with JIRA and other Atlassian products
⟡ GitLab CE/EE (https://gitlab.com/) - a popular open-source Git (CE) with paid support option (EE).
⟡ 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
⟡ Upsource is no longer available as a commercial product as of February 1, 2022. (https://www.jetbrains.com/upsource/)
⟡ Gogs (https://gogs.io/) - a self-hosted Git Service written in Go.
⟡ Gitea (https://gitea.io/) - a community managed fork of Gogs, lightweight code hosting solution written in Go.
⟡ onedev (https://github.com/theonedev/onedev) - Self-hosted Git Server with Kanban and CI/CD
⟡ GitBucket (https://github.com/takezoe/gitbucket/) - a GitHub clone powered by Scala.
⟡ 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
⟡ Effective June 1, 2021: Phabricator is no longer actively maintained. (https://admin.phacility.com/phame/post/view/11/phacility_is_winding_down_operations/)
⟡ RhodeCode CE/EE (https://rhodecode.com/) - a platform delivering enterprise source code management
⟡ Soft Serve (https://github.com/charmbracelet/soft-serve) - a tasty, self-hostable Git server for the command line
Workflow
Inexpensive branching allows people adopt workflows other than the classic centralized workflow
⟡ 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)
⟡ Patterns for Managing Source Code Branches (https://martinfowler.com/articles/branching-patterns.html)
⟡ Branching Models article from Nyx (https://mooltiverse.github.io/nyx/guide/user/best-practice/branching-models/)
Comparing workflows
No single workflow fits everyone's need
⟡ Gitflow (https://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)
⟡ Aoneflow (https://www.alibabacloud.com/blog/how-do-we-manage-code-branches-at-alibaba_593834) - an interesting branch model which delays the final merge to production branch, adopted by
Alibaba. more article (in Chinese text) at 1 (https://segmentfault.com/a/1190000016373314), 2 (https://yq.aliyun.com/articles/573549)
⟡ Agit-flow
(https://git-repo.info/en/2020/03/agit-flow-and-git-repo/) - 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 (https://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.
⟡ quickhook (https://github.com/dirk/quickhook/) - a fast, Unix'y, opinionated Git hook runner
⟡ husky (https://github.com/typicode/husky) - Git hooks for Node.js, manage your hooks from your package.json
⟡ Mookme (https://github.com/Escape-Technologies/mookme) - A simple and easy-to-use, yet powerful and language agnostic git hook for monorepos
⟡ more on https://githooks.com/
Tools
Various tools for daily operations
⟡ awesome-git-addons (https://github.com/stevemao/awesome-git-addons) - lists more than 20 git addons including all available commands
⟡ myrepos (https://myrepos.branchable.com/) - a tool to manage multiple version control repositories
⟡ mu-repo (https://fabioz.github.io/mu-repo/) - a tool to help in dealing with multiple git repositories
⟡ multi-gitter (https://github.com/lindell/multi-gitter) - a tool to make changes in multiple repositories simultaneously
⟡ gitwalk (https://github.com/pazdera/gitwalk) - Bulk processing of git repos
⟡ gr (http://mixu.net/gr/) - a tool for managing multiple git repositories
⟡ 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
⟡ GitIgnore Collection (https://github.com/github/gitignore) - collection of gitignore files for various programming language
⟡ etckeeper (https://etckeeper.branchable.com/) - a collection of tools to let /etc be stored in a git repository
⟡ git-extras (https://github.com/tj/git-extras) – git utilities adding useful git commands.
⟡ git-extra-commands (https://github.com/unixorn/git-extra-commands) - Another collection of useful git commands.
⟡ git-follow (https://github.com/nickolasburr/git-follow) - a tool for following lifetime changes of a file throughout the history of a Git repository.
⟡ 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
⟡ Gitless (https://gitless.com/) - an experimental version of Git that changes some of Git's underlying concepts
⟡ ghq (https://github.com/motemen/ghq) — Organization for remote repositories
⟡ bash-git-prompt (https://github.com/magicmonty/bash-git-prompt) - An informative and fancy bash prompt for Git users
⟡ conventional-changelog (https://github.com/conventional-changelog/conventional-changelog) - a set of tools for parsing conventional commit (https://conventionalcommits.org/) messages from
git histories
⟡ release-it (https://github.com/webpro/release-it) - Automate releases for Git repositories and/or npm packages. Changelog generation, GitHub/GitLab releases, etc.
⟡ gickup (https://github.com/cooperspencer/gickup) - Backup repos from various hosters to local or other hosters.
⟡ git-absorb (https://github.com/tummychow/git-absorb) - git commit --fixup, but automatic
⟡ jc --git-log (https://kellyjonbrazil.github.io/jc/docs/parsers/git_log) - Convert your git log to JSON.
⟡ gitbackup (https://github.com/amitsaha/gitbackup) - a tool to backup your Bitbucket, GitHub and GitLab repositories.
⟡ soba (https://github.com/jonhadfield/soba) - scheduled backups of repositories from popular providers with change detection.
Extensions
Git is designed for source control management. but people extend the idea and push version control to everywhere
⟡ Git Large File Storage (https://git-lfs.github.com/) - practical solution for versioning large files. supported by GitHub
⟡ 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.
⟡ 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/).
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
- Awesome Git (#awesome-git)
- Tutorial (#tutorial)
- Style Guide (#style-guide)
- Client (#client)
- Repository Hosting (#repository-hosting)
- Self-Hosted Repository (#self-hosted-repository)
- Workflow (#workflow)
- Hook management (#hook-management)
- Tools (#tools)
- Extensions (#extensions)
Tutorial
There are tons of learning material on the Web
⟡ 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
⟡ Learn Version Control with Git (https://www.git-tower.com/learn/) - freemium ebook from fournova Software (makers for Tower), associated with paid video course
⟡ Pro Git (https://git-scm.com/book/) - free Git book, also available on paper (CC BY-NC-SA 3.0)
⟡ Learn how to use Git (https://www.deployhq.com/git) - free tutorials and resources to help you learn the basics of Git
⟡ The Git Community Book (https://schacon.github.io/gitbook/) - book built by dozens of people in the Git community
⟡ Git Pocket Guide (https://shop.oreilly.com/product/0636920024972) - a short O'Reilly book on Git
⟡ Git Real: Code School (https://www.codeschool.com/courses/git-real/) - paid training course from Code School
⟡ Git Branching (https://pcottle.github.io/learnGitBranching/) - visual way to learn git branching
⟡ 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
⟡ 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
⟡ Git-It (https://github.com/jlord/git-it-electron) - Interactive Tutorial App that runs on your Desktop!
⟡ Git How To (https://githowto.com) - step by step intro
⟡ Migrating to Git LFS (https://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
⟡ Explain Git with D3
(https://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
⟡ 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
⟡ Git & Git-Flow Cheat Sheet (https://github.com/arslanbilal/git-cheat-sheet)
⟡ Git Tips (https://github.com/git-tips/tips)
⟡ Interactive/Contextual/Visual Cheat Sheet (https://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 (https://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
⟡ Fork and Pull Request Workflow (https://github.com/susam/gitpr) - Very nicely explained, simple and crisp way of understanding git fork and pull request workflow.
⟡ Git School Dude (https://www.youtube.com/c/DanGitschoolDude) - 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 (https://sethrobertson.github.io/GitFixUm/fixup.html) - 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
(https://sethrobertson.github.io/GitFixUm/fixup.html) - fairly comprehensive guide to recovering from what you did not mean to do when using git
⟡ Deconstructing a git commit (https://krishnabiradar.com/blogs/deconstructing-a-git-commit/) - A blog explaining how git creates and stores commit histories.
⟡ Flight rules for Git (https://github.com/k88hudson/git-flight-rules) - guide about what to do when things go wrong
⟡ 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
⟡ Git Cherry-pick and its usages (https://www.loginradius.com/blog/async/git-cherry-pick/) - A blog explaining how command git cherry-pick works.
⟡ The ultimate guide to (https://github.com/groda/the_ultimate_gitignore_guide) All about .gitignore.
Style Guide
Style guide when you work with git
⟡ Udacity Nanodegree Style Guide (https://udacity.github.io/git-styleguide/index.html)
Client
Git clients are available on every platform, from mainframe to your mobile device
⟡ GitHub Desktop (https://desktop.github.com/) - Git Client by GitHub. works with GitHub and GitHub Enterprise seamlessly
⟡ SourceTree (https://www.sourcetreeapp.com/) - free (in-beer) GUI client. Windows and Mac only
⟡ Tower (https://www.git-tower.com/) - a popular non-free Git GUI client. Mac and Windows
⟡ 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.
⟡ Fork (https://git-fork.com) - An awesome and free git client for macOS and Windows
⟡ TortoiseGit (https://tortoisegit.org/) - an easy-to-use Git client on Windows. well-integrated with Windows Explorer.
⟡ SmartGit (https://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
⟡ git-cola (https://git-cola.github.io/) - a cross-platform Git GUI client
⟡ SGit (https://github.com/sheimi/SGit) - Git client for Android 4.x
⟡ Ungit (https://github.com/FredrikNoren/ungit) - The easiest way to use git. On any platform. Anywhere.
⟡ GitUp (http://gitup.co) - a clean, minimal Git client. Mac only.
⟡ GitExtensions (https://gitextensions.github.io/) - a shell extension, a Visual Studio 2010-2015 plugin and a standalone Git repository tool.
⟡ WorkingCopy (https://workingcopyapp.com) - a powerful Git client for iOS. Free with in-app purchase to unlock the ability to push commits.
⟡ Git Add-ons (https://github.com/stevemao/awesome-git-addons) - Enhance the basic git CLI
⟡ Magit (https://magit.vc) - A Git porcelain inside Emacs
⟡ Vershd (https://vershd.io/) - a free for personal use effortless Git GUI for Windows, Mac, & Linux.
⟡ lazygit (https://github.com/jesseduffield/lazygit) - A simple terminal UI for git commands, written in Go
Repository Hosting
People have plenty of options to host their source code
⟡ GitHub (https://github.com/) - the de-facto git hosting service. Perfect integration with most external services.
* **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)
⟡ BitBucket (https://bitbucket.org/) - well-known for its free private repository (5 user max).
⟡ Jetbrains Space (https://www.jetbrains.com/space/) - Jetbrains all-in-one solution for software teams, with IM, ticket tracking, source control.
⟡ GitLab.com (https://about.gitlab.com/gitlab-com/) - a free Git repository hosting service served by GitLab EE. Unlimited repositories and private collaborators
⟡ Azure DevOps (https://azure.microsoft.com/en-us/services/devops/) - cloud service for software development formerly known as Visual Studio Team Services, Visual Studio Online and Team
Foundation Service Preview
⟡ AWS CodeCommit (https://aws.amazon.com/codecommit/) - a SaaS service provided by Amazon Web Service on high availability infrastructure
⟡ Kiln (https://www.fogcreek.com/kiln/) - paid Git repository hosting service
⟡ Deveo (https://deveo.com/) - a paid repository hosting service with support for Git, Subversion, Mercurial, WebDAV
Self-Hosted Repository
Or you can host the code yourselves
⟡ Gitolite (https://gitolite.com/gitolite/) - a simple with fine-grained access control
⟡ GitHub Enterprise (https://enterprise.github.com/) - self-hosted solution provided from GitHub
⟡ Bitbucket Server (https://www.atlassian.com/software/bitbucket/server) - self-hosted refrom Atlassian. Good integration with JIRA and other Atlassian products
⟡ GitLab CE/EE (https://gitlab.com/) - a popular open-source Git (CE) with paid support option (EE).
⟡ 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
⟡ Upsource is no longer available as a commercial product as of February 1, 2022. (https://www.jetbrains.com/upsource/)
⟡ Gogs (https://gogs.io/) - a self-hosted Git Service written in Go.
⟡ Gitea (https://gitea.io/) - a community managed fork of Gogs, lightweight code hosting solution written in Go.
⟡ onedev (https://github.com/theonedev/onedev) - Self-hosted Git Server with Kanban and CI/CD
⟡ GitBucket (https://github.com/takezoe/gitbucket/) - a GitHub clone powered by Scala.
⟡ 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
⟡ Effective June 1, 2021: Phabricator is no longer actively maintained. (https://admin.phacility.com/phame/post/view/11/phacility_is_winding_down_operations/)
⟡ RhodeCode CE/EE (https://rhodecode.com/) - a platform delivering enterprise source code management
⟡ Soft Serve (https://github.com/charmbracelet/soft-serve) - a tasty, self-hostable Git server for the command line
Workflow
Inexpensive branching allows people adopt workflows other than the classic centralized workflow
⟡ 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)
⟡ Patterns for Managing Source Code Branches (https://martinfowler.com/articles/branching-patterns.html)
⟡ Branching Models article from Nyx (https://mooltiverse.github.io/nyx/guide/user/best-practice/branching-models/)
Comparing workflows
No single workflow fits everyone's need
⟡ Gitflow (https://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)
⟡ Aoneflow (https://www.alibabacloud.com/blog/how-do-we-manage-code-branches-at-alibaba_593834) - an interesting branch model which delays the final merge to production branch, adopted by
Alibaba. more article (in Chinese text) at 1 (https://segmentfault.com/a/1190000016373314), 2 (https://yq.aliyun.com/articles/573549)
⟡ Agit-flow
(https://git-repo.info/en/2020/03/agit-flow-and-git-repo/) - 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 (https://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.
⟡ quickhook (https://github.com/dirk/quickhook/) - a fast, Unix'y, opinionated Git hook runner
⟡ husky (https://github.com/typicode/husky) - Git hooks for Node.js, manage your hooks from your package.json
⟡ Mookme (https://github.com/Escape-Technologies/mookme) - A simple and easy-to-use, yet powerful and language agnostic git hook for monorepos
⟡ more on https://githooks.com/
Tools
Various tools for daily operations
⟡ awesome-git-addons (https://github.com/stevemao/awesome-git-addons) - lists more than 20 git addons including all available commands
⟡ myrepos (https://myrepos.branchable.com/) - a tool to manage multiple version control repositories
⟡ mu-repo (https://fabioz.github.io/mu-repo/) - a tool to help in dealing with multiple git repositories
⟡ multi-gitter (https://github.com/lindell/multi-gitter) - a tool to make changes in multiple repositories simultaneously
⟡ gitwalk (https://github.com/pazdera/gitwalk) - Bulk processing of git repos
⟡ gr (http://mixu.net/gr/) - a tool for managing multiple git repositories
⟡ 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
⟡ GitIgnore Collection (https://github.com/github/gitignore) - collection of gitignore files for various programming language
⟡ etckeeper (https://etckeeper.branchable.com/) - a collection of tools to let /etc be stored in a git repository
⟡ git-extras (https://github.com/tj/git-extras) – git utilities adding useful git commands.
⟡ git-extra-commands (https://github.com/unixorn/git-extra-commands) - Another collection of useful git commands.
⟡ git-follow (https://github.com/nickolasburr/git-follow) - a tool for following lifetime changes of a file throughout the history of a Git repository.
⟡ 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
⟡ Gitless (https://gitless.com/) - an experimental version of Git that changes some of Git's underlying concepts
⟡ ghq (https://github.com/motemen/ghq) — Organization for remote repositories
⟡ bash-git-prompt (https://github.com/magicmonty/bash-git-prompt) - An informative and fancy bash prompt for Git users
⟡ conventional-changelog (https://github.com/conventional-changelog/conventional-changelog) - a set of tools for parsing conventional commit (https://conventionalcommits.org/) messages from
git histories
⟡ release-it (https://github.com/webpro/release-it) - Automate releases for Git repositories and/or npm packages. Changelog generation, GitHub/GitLab releases, etc.
⟡ gickup (https://github.com/cooperspencer/gickup) - Backup repos from various hosters to local or other hosters.
⟡ git-absorb (https://github.com/tummychow/git-absorb) - git commit --fixup, but automatic
⟡ jc --git-log (https://kellyjonbrazil.github.io/jc/docs/parsers/git_log) - Convert your git log to JSON.
⟡ gitbackup (https://github.com/amitsaha/gitbackup) - a tool to backup your Bitbucket, GitHub and GitLab repositories.
⟡ soba (https://github.com/jonhadfield/soba) - scheduled backups of repositories from popular providers with change detection.
Extensions
Git is designed for source control management. but people extend the idea and push version control to everywhere
⟡ Git Large File Storage (https://git-lfs.github.com/) - practical solution for versioning large files. supported by GitHub
⟡ 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.
⟡ 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/).