Files
awesome-awesomeness/html/git.html
2025-07-18 23:13:11 +02:00

420 lines
20 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<figure>
<img src="cover.png" alt="Cover image" />
<figcaption aria-hidden="true">Cover image</figcaption>
</figure>
<h1 id="awesome-git">Awesome Git</h1>
<p>A curated list of amazingly awesome Git tools, resources and shiny
things.</p>
<h2 id="contributing">Contributing</h2>
<p>Pull requests on interesting tools/projects/resources are
welcome.</p>
<h2 id="table-of-contents">Table of Contents</h2>
<ul>
<li><a href="#awesome-git">Awesome Git</a>
<ul>
<li><a href="#tutorial">Tutorial</a></li>
<li><a href="#style-guide">Style Guide</a></li>
<li><a href="#client">Client</a></li>
<li><a href="#repository-hosting">Repository Hosting</a></li>
<li><a href="#self-hosted-repository">Self-Hosted Repository</a></li>
<li><a href="#workflow">Workflow</a></li>
<li><a href="#hook-management">Hook management</a></li>
<li><a href="#tools">Tools</a></li>
<li><a href="#extensions">Extensions</a></li>
</ul></li>
</ul>
<h2 id="tutorial">Tutorial</h2>
<p><em>There are tons of learning material on the Web</em></p>
<ul>
<li><a href="https://try.github.io/">Try Git</a> - learn Git in 15
minutes with pseudo-terminal interface</li>
<li><a href="https://www.atlassian.com/git/tutorials/">Atlassian Git
Tutorial</a> - comprehensive tutorial on Git</li>
<li><a href="https://www.git-tower.com/learn/">Learn Version Control
with Git</a> - freemium ebook from fournova Software (makers for Tower),
associated with paid video course</li>
<li><a href="https://git-scm.com/book/">Pro Git</a> - free Git book,
also available on paper (CC BY-NC-SA 3.0)</li>
<li><a href="https://www.deployhq.com/git">Learn how to use Git</a> -
free tutorials and resources to help you learn the basics of Git</li>
<li><a href="https://schacon.github.io/gitbook/">The Git Community
Book</a> - book built by dozens of people in the Git community</li>
<li><a href="https://shop.oreilly.com/product/0636920024972">Git Pocket
Guide</a> - a short OReilly book on Git</li>
<li><a href="https://www.codeschool.com/courses/git-real/">Git Real:
Code School</a> - paid training course from Code School</li>
<li><a href="https://pcottle.github.io/learnGitBranching/">Git
Branching</a> - visual way to learn git branching</li>
<li><a
href="https://www.manning.com/books/learn-git-in-a-month-of-lunches">Learn
Git in a Month of Lunches</a> - tutorial-based book by Manning
Publications</li>
<li><a
href="http://www-cs-students.stanford.edu/~blynn/gitmagic/index.html">Git
Magic</a> - short book about Git</li>
<li><a href="https://jwiegley.github.io/git-from-the-bottom-up/">Git
from the bottom up</a> - great series of articles about Git</li>
<li><a href="https://github.com/jlord/git-it-electron">Git-It</a> -
Interactive Tutorial App that runs on your Desktop!</li>
<li><a href="https://githowto.com">Git How To</a> - step by step
intro</li>
<li><a
href="https://vooban.com/en/tips-articles-geek-stuff/migrating-to-git-lfs-for-developing-deep-learning-applications-with-large-files/">Migrating
to Git LFS</a> - Use Git LFS on an existing repository to manage large
files in a better way</li>
<li><a href="https://onlywei.github.io/explain-git-with-d3/">Explain Git
with D3</a> - Visualized few basic Git concepts using D3.js: commit,
branch, checkout, reset, revert, merge, rebase, fetch, pull, push,
tag</li>
<li><a
href="https://appendto.com/2015/06/making-sense-of-git-a-visual-perspective/">Making
Sense of Git A Visual Perspective</a> - Git from a timeline and level
perspective and git commands cheatsheet grouped by functionality</li>
<li><a href="https://github.com/arslanbilal/git-cheat-sheet">Git &amp;
Git-Flow Cheat Sheet</a></li>
<li><a href="https://github.com/git-tips/tips">Git Tips</a></li>
<li><a
href="https://ndpsoftware.com/git-cheatsheet.html">Interactive/Contextual/Visual
Cheat Sheet</a></li>
<li><a
href="http://justinhileman.info/article/git-pretty/git-pretty.png">The
Git Pretty Flow-Chart</a> - How to Recover from a Mess</li>
<li><a href="https://software-carpentry.org/lessons/">Software
Carpentry: Git Lessons</a></li>
<li><a
href="http://tom.preston-werner.com/2009/05/19/the-git-parable.html">The
Git Parable</a> - GitHub Cofounders Narrative-style Intro to Git
Concepts</li>
<li><a
href="https://codebasicshub.com/tutorial/git-github/what-is-git">CodeBasicsHub:
Git Video Tutorials</a></li>
<li><a
href="http://www.columbia.edu/~zjn2101/intermediate-git/#1">Intermediate
Git</a> - lower-level, more structural explanation of git concepts</li>
<li><a href="https://github.com/susam/gitpr">Fork and Pull Request
Workflow</a> - Very nicely explained, simple and crisp way of
understanding git fork and pull request workflow.</li>
<li><a href="https://www.youtube.com/c/DanGitschoolDude">Git School
Dude</a> - Its a YouTube channel with a lot of great git videos. It
covers everything from the basics to advanced Git topics.</li>
<li><a href="https://sethrobertson.github.io/GitFixUm/fixup.html">A Git
Choose Your Own Adventure</a> - I never found a git tutorial I didnt
understand while doing it. Just sometimes those tutorials didnt 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.</li>
<li><a href="https://sethrobertson.github.io/GitFixUm/fixup.html">On
undoing, fixing, or removing commits in git</a> - fairly comprehensive
guide to recovering from what you did not mean to do when using git</li>
<li><a
href="https://krishnabiradar.com/blogs/deconstructing-a-git-commit/">Deconstructing
a git commit</a> - A blog explaining how git creates and stores commit
histories.</li>
<li><a href="https://github.com/k88hudson/git-flight-rules">Flight rules
for Git</a> - guide about what to do when things go wrong</li>
<li><a
href="https://lostechies.com/joshuaflanagan/2010/09/03/use-gitk-to-understand-git/">Use
gitk to understand git</a> - all important Git terms (commit, commit
SHA, branch, merge, rebase) explained using gitk</li>
<li><a
href="https://www.loginradius.com/blog/async/git-cherry-pick/">Git
Cherry-pick and its usages</a> - A blog explaining how command git
cherry-pick works.</li>
<li><a href="https://github.com/groda/the_ultimate_gitignore_guide">The
ultimate guide to <code>.gitignore</code></a> All about
<code>.gitignore</code>.</li>
<li><a href="https://maciejb2k.github.io/no-bs-git/">No Bullsh*t Git</a>
- free and complete explanation of git internals and the
<code>.git/</code> directory.</li>
</ul>
<h2 id="style-guide">Style Guide</h2>
<p><em>Style guide when you work with git</em></p>
<ul>
<li><a
href="https://udacity.github.io/git-styleguide/index.html">Udacity
Nanodegree Style Guide</a></li>
</ul>
<h2 id="client">Client</h2>
<p><em>Git clients are available on every platform, from mainframe to
your mobile device</em></p>
<ul>
<li><a href="https://desktop.github.com/">GitHub Desktop</a> - Git
Client by GitHub. works with GitHub and GitHub Enterprise
seamlessly</li>
<li><a href="https://www.sourcetreeapp.com/">SourceTree</a> - free
(in-beer) GUI client. Windows and Mac only</li>
<li><a href="https://www.git-tower.com/">Tower</a> - a popular non-free
Git GUI client. Mac and Windows</li>
<li><a href="https://www.gitkraken.com/">GitKraken</a> - a cross Git
client for Windows, Mac &amp; Linux. Electron based. Free for
non-commercial use and paid Pro version is available.</li>
<li><a href="https://git-fork.com">Fork</a> - An awesome and free git
client for macOS and Windows</li>
<li><a href="https://tortoisegit.org/">TortoiseGit</a> - an easy-to-use
Git client on Windows. well-integrated with Windows Explorer.</li>
<li><a href="https://www.syntevo.com/smartgit/">SmartGit</a> - a
commercial comprehensive SCM client with Git, SVN, Mercurial.
cross-platform (works on Windows, Mac and Linux)</li>
<li><a href="http://rabbitvcs.org/">RabbitVCS</a> - TortoiseSVN inspired
graphic tool for version control systems, with Nautilus and Thunar
integration</li>
<li><a href="https://wiki.gnome.org/Apps/Gitg/">gitg</a> - a open-source
GTK+ GUI client</li>
<li><a href="https://git-cola.github.io/">git-cola</a> - a
cross-platform Git GUI client</li>
<li><a href="https://github.com/sheimi/SGit">SGit</a> - Git client for
Android 4.x</li>
<li><a href="https://github.com/FredrikNoren/ungit">Ungit</a> - The
easiest way to use git. On any platform. Anywhere.</li>
<li><a href="http://gitup.co">GitUp</a> - a clean, minimal Git client.
Mac only.</li>
<li><a href="https://gitextensions.github.io/">GitExtensions</a> - a
shell extension, a Visual Studio 2010-2015 plugin and a standalone Git
repository tool.</li>
<li><a href="https://workingcopyapp.com">WorkingCopy</a> - a powerful
Git client for iOS. Free with in-app purchase to unlock the ability to
push commits.</li>
<li><a href="https://github.com/stevemao/awesome-git-addons">Git
Add-ons</a> - Enhance the basic <code>git</code> CLI</li>
<li><a href="https://magit.vc">Magit</a> - A Git porcelain inside
Emacs</li>
<li><a href="https://vershd.io/">Vershd</a> - a free for personal use
effortless Git GUI for Windows, Mac, &amp; Linux.</li>
<li><a href="https://github.com/jesseduffield/lazygit">lazygit</a> - A
simple terminal UI for git commands, written in Go</li>
<li><a href="https://github.com/Murmele/Gittyup">Gittyup</a> - a
graphical Git client designed to help you understand and manage your
source code history.</li>
</ul>
<h2 id="repository-hosting">Repository Hosting</h2>
<p><em>People have plenty of options to host their source code</em></p>
<ul>
<li><a href="https://github.com/">GitHub</a> - the de-facto git hosting
service. Perfect integration with most external services.
<ul>
<li><a href="https://github.com/phillipadsmith/awesome-github">Awesome
GitHub</a> - Resources &amp; Learning for GitHub
<ul>
<li><a href="https://github.com/tiimgreen/github-cheat-sheet">GitHub
Cheat Sheet</a></li>
<li><a
href="https://github.com/stefanbuck/awesome-browser-extensions-for-github">GitHub
Browser Extensions</a></li>
</ul></li>
</ul></li>
<li><a href="https://bitbucket.org/">BitBucket</a> - well-known for its
free private repository (5 user max).</li>
<li><a href="https://www.jetbrains.com/space/">Jetbrains Space</a> -
Jetbrains all-in-one solution for software teams, with IM, ticket
tracking, source control.</li>
<li><a href="https://about.gitlab.com/gitlab-com/">GitLab.com</a> - a
free Git repository hosting service served by GitLab EE. Unlimited
repositories and private collaborators</li>
<li><a href="https://azure.microsoft.com/en-us/services/devops/">Azure
DevOps</a> - cloud service for software development formerly known as
Visual Studio Team Services, Visual Studio Online and Team Foundation
Service Preview</li>
<li><a href="https://aws.amazon.com/codecommit/">AWS CodeCommit</a> - a
SaaS service provided by Amazon Web Service on high availability
infrastructure</li>
<li><a href="https://www.fogcreek.com/kiln/">Kiln</a> - paid Git
repository hosting service</li>
<li><a href="https://deveo.com/">Deveo</a> - a paid repository hosting
service with support for Git, Subversion, Mercurial, WebDAV</li>
</ul>
<h2 id="self-hosted-repository">Self-Hosted Repository</h2>
<p><em>Or you can host the code yourselves</em></p>
<ul>
<li><a href="https://gitolite.com/gitolite/">Gitolite</a> - a simple
with fine-grained access control</li>
<li><a href="https://enterprise.github.com/">GitHub Enterprise</a> -
self-hosted solution provided from GitHub</li>
<li><a
href="https://www.atlassian.com/software/bitbucket/server">Bitbucket
Server</a> - self-hosted refrom Atlassian. Good integration with JIRA
and other Atlassian products</li>
<li><a href="https://gitlab.com/">GitLab CE/EE</a> - a popular
open-source Git (CE) with paid support option (EE).</li>
<li><del><a href="https://www.jetbrains.com/upsource">Upsource</a> -
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</del>
<ul>
<li>Upsource is no longer available as a commercial product as of
February 1, 2022.<a
href="https://www.jetbrains.com/upsource/">*</a></li>
</ul></li>
<li><a href="https://gogs.io/">Gogs</a> - a self-hosted Git Service
written in Go.</li>
<li><a href="https://gitea.io/">Gitea</a> - a community managed fork of
Gogs, lightweight code hosting solution written in Go.</li>
<li><a href="https://forgejo.org/">Forgejo</a> - a community managed
fork of Gitea, started after Gitea changed ownership.<a
href="https://gitea-open-letter.coding.social/">*</a></li>
<li><a href="https://github.com/theonedev/onedev">onedev</a> -
Self-hosted Git Server with Kanban and CI/CD</li>
<li><a href="https://github.com/takezoe/gitbucket/">GitBucket</a> - a
GitHub clone powered by Scala.</li>
<li><a href="http://gitblit.com/">GitBlit</a> - Pure Java Stack for
managing, view, and serving Git repositories.</li>
<li><a href="https://allura.apache.org/">Apache Allura</a> - an open
source implementation of project hosting platform</li>
<li><a href="https://www.phacility.com/">Phabricator</a> - an integrated
set of powerful tools to help companies build higher quality software
<ul>
<li>Effective June 1, 2021: Phabricator is no longer actively
maintained.<a
href="https://admin.phacility.com/phame/post/view/11/phacility_is_winding_down_operations/">*</a></li>
</ul></li>
<li><a href="https://rhodecode.com/">RhodeCode CE/EE</a> - a platform
delivering enterprise source code management</li>
<li><a href="https://github.com/charmbracelet/soft-serve">Soft Serve</a>
- a tasty, self-hostable Git server for the command line</li>
<li><a href="https://developer.harness.io/docs/open-source">Harness Open
Source</a> - Open Source code hosting with secret scanning based on
Gitleaks. Self-hosted and Apache-2.0 license.</li>
</ul>
<h2 id="workflow">Workflow</h2>
<p><em>Inexpensive branching allows people adopt workflows other than
the classic centralized workflow</em></p>
<ul>
<li><a
href="https://git-scm.com/book/it/v2/Distributed-Git-Distributed-Workflows">Pro
Git - Distributed Workflows</a></li>
<li><a
href="https://www.atlassian.com/git/tutorials/comparing-workflows">Atlassian
Git Tutorial - Comparing Workflows</a></li>
<li><a
href="https://martinfowler.com/articles/branching-patterns.html">Patterns
for Managing Source Code Branches</a></li>
<li><a
href="https://mooltiverse.github.io/nyx/guide/user/best-practice/branching-models/">Branching
Models article from Nyx</a></li>
</ul>
<h3 id="comparing-workflows">Comparing workflows</h3>
<p><em>No single workflow fits everyones need</em></p>
<ul>
<li><a
href="https://nvie.com/posts/a-successful-git-branching-model/">Gitflow</a>
- the most well-known Git workflow model</li>
<li><a href="http://scottchacon.com/2011/08/31/github-flow.html">GitHub
flow</a> - a simple branching model with a single master</li>
<li><a href="https://about.gitlab.com/2014/09/29/gitlab-flow/">GitLab
flow</a></li>
<li><a href="https://gist.github.com/djspiewak/9f2f91085607a4859a66">Git
DMZ Flow</a></li>
<li><a
href="https://www.alibabacloud.com/blog/how-do-we-manage-code-branches-at-alibaba_593834">Aoneflow</a>
- an interesting branch model which delays the final merge to production
branch, adopted by Alibaba. more article (in Chinese text) at <a
href="https://segmentfault.com/a/1190000016373314">1</a>, <a
href="https://yq.aliyun.com/articles/573549">2</a></li>
<li><a
href="https://git-repo.info/en/2020/03/agit-flow-and-git-repo/">Agit-flow</a>
- Inspired by Gerrit workflow, Agit-flow is a centralized git workflow
and used in Alibabas internal source code platform</li>
</ul>
<h2 id="hook-management">Hook management</h2>
<p><em>Git provide hooks at commit/push phrase, allowing integration
with and code quality checking tool and Continuous Integration
(CI)</em></p>
<ul>
<li><a href="https://pre-commit.com">pre-commit</a> - a framework for
managing and maintaining multi-language pre-commit hooks.</li>
<li><a href="https://github.com/typicode/husky">husky</a> - modern
native Git hooks made easy.</li>
<li><a href="https://github.com/brigade/overcommit">Overcommit</a> - a
extendable Git hook manager written with Ruby.</li>
<li><a href="https://github.com/evilmartians/lefthook">lefthook</a> -
fast and powerful Git hooks manager for any type of project.</li>
<li><a href="https://github.com/Escape-Technologies/mookme">Mookme</a> -
A simple and easy-to-use, yet powerful and language agnostic git hook
for monorepos.</li>
<li><a href="https://github.com/dirk/quickhook">quickhook</a> - a fast,
Unixy, opinionated Git hook runner.</li>
<li>more on https://githooks.com/</li>
</ul>
<h2 id="tools">Tools</h2>
<p><em>Various tools for daily operations</em></p>
<ul>
<li><a
href="https://github.com/stevemao/awesome-git-addons">awesome-git-addons</a>
- lists more than 20 git addons including all available commands</li>
<li><a href="https://myrepos.branchable.com/">myrepos</a> - a tool to
manage multiple version control repositories</li>
<li><a href="https://fabioz.github.io/mu-repo/">mu-repo</a> - a tool to
help in dealing with multiple git repositories</li>
<li><a href="https://github.com/lindell/multi-gitter">multi-gitter</a> -
a tool to make changes in multiple repositories simultaneously</li>
<li><a href="https://github.com/pazdera/gitwalk">gitwalk</a> - Bulk
processing of git repos</li>
<li><a href="http://mixu.net/gr/">gr</a> - a tool for managing multiple
git repositories</li>
<li><a href="https://rtyley.github.io/bfg-repo-cleaner/">BFG
Repo-Cleaner</a> - a simpler, faster alternative to git-filter-branch
for cleansing bad data out of your Git repository history</li>
<li><a href="https://github.com/github/gitignore">GitIgnore
Collection</a> - collection of gitignore files for various programming
language</li>
<li><a href="https://etckeeper.branchable.com/">etckeeper</a> - a
collection of tools to let /etc be stored in a git repository</li>
<li><a href="https://github.com/tj/git-extras">git-extras</a> git
utilities adding useful git commands.</li>
<li><a
href="https://github.com/unixorn/git-extra-commands">git-extra-commands</a>
- Another collection of useful git commands.</li>
<li><a href="https://github.com/nickolasburr/git-follow">git-follow</a>
- a tool for following lifetime changes of a file throughout the history
of a Git repository.</li>
<li><a href="https://github.com/michenriksen/gitrob">Gitrob</a> - a
command line tool to find sensitive information lingering in publicly
available files on GitHub</li>
<li><a href="https://www.presslabs.com/gitfs/">gitFS</a> - a FUSE file
system that fully integrates with git</li>
<li><a href="https://gitless.com/">Gitless</a> - an experimental version
of Git that changes some of Gits underlying concepts</li>
<li><a href="https://github.com/motemen/ghq">ghq</a> — Organization for
remote repositories</li>
<li><a
href="https://github.com/magicmonty/bash-git-prompt">bash-git-prompt</a>
- An informative and fancy bash prompt for Git users</li>
<li><a
href="https://github.com/conventional-changelog/conventional-changelog">conventional-changelog</a>
- a set of tools for parsing <a
href="https://conventionalcommits.org/">conventional commit</a> messages
from git histories</li>
<li><a href="https://github.com/webpro/release-it">release-it</a> -
Automate releases for Git repositories and/or npm packages. Changelog
generation, GitHub/GitLab releases, etc.</li>
<li><a href="https://github.com/cooperspencer/gickup">gickup</a> -
Backup repos from various hosters to local or other hosters.</li>
<li><a href="https://github.com/tummychow/git-absorb">git-absorb</a> -
<code>git commit --fixup</code>, but automatic</li>
<li><a
href="https://kellyjonbrazil.github.io/jc/docs/parsers/git_log">jc
git-log</a> - Convert your git log to JSON.</li>
<li><a href="https://github.com/amitsaha/gitbackup">gitbackup</a> - a
tool to backup your Bitbucket, GitHub and GitLab repositories.</li>
<li><a href="https://github.com/jonhadfield/soba">soba</a> - scheduled
backups of repositories from popular providers with change
detection.</li>
<li><a href="https://github.com/jonas/tig">tig</a> - text-mode interface
for git.</li>
</ul>
<h2 id="extensions">Extensions</h2>
<p><em>Git is designed for source control management. but people extend
the idea and push version control to everywhere</em></p>
<ul>
<li><a href="https://git-lfs.github.com/">Git Large File Storage</a> -
practical solution for versioning large files. supported by GitHub</li>
<li><a href="https://github.com/Microsoft/GVFS">Git Virtual File System
or GVFS</a> - solution for managing very large Git repository while
maintaining speed and efficiency of most operations. in developement by
Microsoft.</li>
<li><a href="https://git-annex.branchable.com/">git-annex</a> - allow
managing large binaries among machines, as if operation a normal git
repository. possible to creates a synchronised folder with <a
href="https://git-annex.branchable.com/assistant/">git-annex
assistant</a>.</li>
</ul>
<p><a href="https://github.com/dictcp/awesome-git">git.md Github</a></p>