├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | Creative Commons Legal Code 2 | 3 | CC0 1.0 Universal 4 | 5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE 6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN 7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS 8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES 9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS 10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM 11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED 12 | HEREUNDER. 13 | 14 | Statement of Purpose 15 | 16 | The laws of most jurisdictions throughout the world automatically confer 17 | exclusive Copyright and Related Rights (defined below) upon the creator 18 | and subsequent owner(s) (each and all, an "owner") of an original work of 19 | authorship and/or a database (each, a "Work"). 20 | 21 | Certain owners wish to permanently relinquish those rights to a Work for 22 | the purpose of contributing to a commons of creative, cultural and 23 | scientific works ("Commons") that the public can reliably and without fear 24 | of later claims of infringement build upon, modify, incorporate in other 25 | works, reuse and redistribute as freely as possible in any form whatsoever 26 | and for any purposes, including without limitation commercial purposes. 27 | These owners may contribute to the Commons to promote the ideal of a free 28 | culture and the further production of creative, cultural and scientific 29 | works, or to gain reputation or greater distribution for their Work in 30 | part through the use and efforts of others. 31 | 32 | For these and/or other purposes and motivations, and without any 33 | expectation of additional consideration or compensation, the person 34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she 35 | is an owner of Copyright and Related Rights in the Work, voluntarily 36 | elects to apply CC0 to the Work and publicly distribute the Work under its 37 | terms, with knowledge of his or her Copyright and Related Rights in the 38 | Work and the meaning and intended legal effect of CC0 on those rights. 39 | 40 | 1. Copyright and Related Rights. A Work made available under CC0 may be 41 | protected by copyright and related or neighboring rights ("Copyright and 42 | Related Rights"). Copyright and Related Rights include, but are not 43 | limited to, the following: 44 | 45 | i. the right to reproduce, adapt, distribute, perform, display, 46 | communicate, and translate a Work; 47 | ii. moral rights retained by the original author(s) and/or performer(s); 48 | iii. publicity and privacy rights pertaining to a person's image or 49 | likeness depicted in a Work; 50 | iv. rights protecting against unfair competition in regards to a Work, 51 | subject to the limitations in paragraph 4(a), below; 52 | v. rights protecting the extraction, dissemination, use and reuse of data 53 | in a Work; 54 | vi. database rights (such as those arising under Directive 96/9/EC of the 55 | European Parliament and of the Council of 11 March 1996 on the legal 56 | protection of databases, and under any national implementation 57 | thereof, including any amended or successor version of such 58 | directive); and 59 | vii. other similar, equivalent or corresponding rights throughout the 60 | world based on applicable law or treaty, and any national 61 | implementations thereof. 62 | 63 | 2. Waiver. To the greatest extent permitted by, but not in contravention 64 | of, applicable law, Affirmer hereby overtly, fully, permanently, 65 | irrevocably and unconditionally waives, abandons, and surrenders all of 66 | Affirmer's Copyright and Related Rights and associated claims and causes 67 | of action, whether now known or unknown (including existing as well as 68 | future claims and causes of action), in the Work (i) in all territories 69 | worldwide, (ii) for the maximum duration provided by applicable law or 70 | treaty (including future time extensions), (iii) in any current or future 71 | medium and for any number of copies, and (iv) for any purpose whatsoever, 72 | including without limitation commercial, advertising or promotional 73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each 74 | member of the public at large and to the detriment of Affirmer's heirs and 75 | successors, fully intending that such Waiver shall not be subject to 76 | revocation, rescission, cancellation, termination, or any other legal or 77 | equitable action to disrupt the quiet enjoyment of the Work by the public 78 | as contemplated by Affirmer's express Statement of Purpose. 79 | 80 | 3. Public License Fallback. Should any part of the Waiver for any reason 81 | be judged legally invalid or ineffective under applicable law, then the 82 | Waiver shall be preserved to the maximum extent permitted taking into 83 | account Affirmer's express Statement of Purpose. In addition, to the 84 | extent the Waiver is so judged Affirmer hereby grants to each affected 85 | person a royalty-free, non transferable, non sublicensable, non exclusive, 86 | irrevocable and unconditional license to exercise Affirmer's Copyright and 87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the 88 | maximum duration provided by applicable law or treaty (including future 89 | time extensions), (iii) in any current or future medium and for any number 90 | of copies, and (iv) for any purpose whatsoever, including without 91 | limitation commercial, advertising or promotional purposes (the 92 | "License"). The License shall be deemed effective as of the date CC0 was 93 | applied by Affirmer to the Work. Should any part of the License for any 94 | reason be judged legally invalid or ineffective under applicable law, such 95 | partial invalidity or ineffectiveness shall not invalidate the remainder 96 | of the License, and in such case Affirmer hereby affirms that he or she 97 | will not (i) exercise any of his or her remaining Copyright and Related 98 | Rights in the Work or (ii) assert any associated claims and causes of 99 | action with respect to the Work, in either case contrary to Affirmer's 100 | express Statement of Purpose. 101 | 102 | 4. Limitations and Disclaimers. 103 | 104 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 105 | surrendered, licensed or otherwise affected by this document. 106 | b. Affirmer offers the Work as-is and makes no representations or 107 | warranties of any kind concerning the Work, express, implied, 108 | statutory or otherwise, including without limitation warranties of 109 | title, merchantability, fitness for a particular purpose, non 110 | infringement, or the absence of latent or other defects, accuracy, or 111 | the present or absence of errors, whether or not discoverable, all to 112 | the greatest extent permissible under applicable law. 113 | c. Affirmer disclaims responsibility for clearing rights of other persons 114 | that may apply to the Work or any use thereof, including without 115 | limitation any person's Copyright and Related Rights in the Work. 116 | Further, Affirmer disclaims responsibility for obtaining any necessary 117 | consents, permissions or other rights required for any use of the 118 | Work. 119 | d. Affirmer understands and acknowledges that Creative Commons is not a 120 | party to this document and has no duty or obligation with respect to 121 | this CC0 or use of the Work. 122 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Awesome Git 2 | A curated list of amazingly awesome Git tools, resources and shiny things. 3 | 4 | ## Contributing 5 | Pull requests on interesting tools/projects/resources are welcome. 6 | 7 | ## Table of Contents 8 | - [Awesome Git](#awesome-git) 9 | - [Tutorial](#tutorial) 10 | - [Style Guide](#style-guide) 11 | - [Client](#client) 12 | - [Repository Hosting](#repository-hosting) 13 | - [Self-Hosted Repository](#self-hosted-repository) 14 | - [Workflow](#workflow) 15 | - [Hook management](#hook-management) 16 | - [Tools](#tools) 17 | - [Extensions](#extensions) 18 | 19 | ## Tutorial 20 | *There are tons of learning material on the Web* 21 | 22 | * [Flight rules for Git](https://github.com/k88hudson/git-flight-rules) - guide about what to do when things go wrong 23 | * [Try Git](https://try.github.io/) - learn Git in 15 minutes with pseudo-terminal interface 24 | * [Atlassian Git Tutorial](https://www.atlassian.com/git/tutorials/) - comprehensive tutorial on Git 25 | * [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 26 | * [Learn Version Control with Git](https://www.git-tower.com/learn/) - freemium ebook from fournova Software (makers for Tower), associated with paid video course 27 | * [Pro Git](https://git-scm.com/book/) - free Git book, also available on paper (CC BY-NC-SA 3.0) 28 | * [Learn how to use Git](https://www.deployhq.com/git) - free tutorials and resources to help you learn the basics of Git 29 | * [The Git Community Book](https://schacon.github.io/gitbook/) - book built by dozens of people in the Git community 30 | * [Git Pocket Guide](http://shop.oreilly.com/product/0636920024972) - a short O'Reilly book on Git 31 | * [Git Real: Code School](https://www.codeschool.com/courses/git-real/) - paid training course from Code School 32 | * [Git Branching](http://pcottle.github.io/learnGitBranching/) - visual way to learn git branching 33 | * [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 34 | * [Git Magic](http://www-cs-students.stanford.edu/~blynn/gitmagic/index.html) - short book about Git 35 | * [Git from the bottom up](https://jwiegley.github.io/git-from-the-bottom-up/) - great series of articles about Git 36 | * [Git-It](https://github.com/jlord/git-it-electron) - Interactive Tutorial App that runs on your Desktop! 37 | * [Git How To](http://githowto.com) - step by step intro 38 | * [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 39 | * [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 40 | * [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 41 | * [Git & Git-Flow Cheat Sheet](https://github.com/arslanbilal/git-cheat-sheet) 42 | * [Git Tips](https://github.com/git-tips/tips) 43 | * [Interactive/Contextual/Visual Cheat Sheet](http://ndpsoftware.com/git-cheatsheet.html) 44 | * [The 'Git Pretty' Flow-Chart](http://justinhileman.info/article/git-pretty/git-pretty.png) - How to Recover from a Mess 45 | * [Software Carpentry: Git Lessons](https://software-carpentry.org/lessons/) 46 | * [The Git Parable](http://tom.preston-werner.com/2009/05/19/the-git-parable.html) - GitHub Cofounder's Narrative-style Intro to Git Concepts 47 | * [CodeBasicsHub: Git Video Tutorials](http://codebasicshub.com/tutorial/git-github/what-is-git) 48 | * [Intermediate Git](http://www.columbia.edu/~zjn2101/intermediate-git/#1) - lower-level, more structural explanation of git concepts 49 | * [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. 50 | * [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. 51 | * [A Git Choose Your Own Adventure](http://sethrobertson.github.io/GitFixUm/fixup.html) - I never found a git tutorial I didn't understand while doing it. Just sometimes those tutoars 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 fisrt starting out. 52 | * [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 53 | * [Deconstructing a git commit](https://krishnabiradar.com/blogs/deconstructing-a-git-commit/) - A blog explaining how git creates and stores commit histories. 54 | 55 | ## Style Guide 56 | *Style guide when you work with git* 57 | 58 | * [Udacity Nanodegree Style Guide](https://udacity.github.io/git-styleguide/index.html) 59 | 60 | ## Client 61 | *Git clients are available on every platform, from mainframe to your mobile device* 62 | 63 | * [TortoiseGit](https://tortoisegit.org/) - an easy-to-use Git client on Windows. well-integrated with Windows Explorer. 64 | * [GitHub Desktop](https://desktop.github.com/) - Git Client by GitHub. works with GitHub and GitHub Enterprise seamlessly 65 | * [SourceTree](https://www.sourcetreeapp.com/) - free (in-beer) GUI client. Windows and Mac only 66 | * [Tower](http://www.git-tower.com/) - a popular non-free Git GUI client. Mac and Windows 67 | * [SmartGit](http://www.syntevo.com/smartgit/) - a commercial comprehensive SCM client with Git, SVN, Mercurial. cross-platform (works on Windows, Mac and Linux) 68 | * [RabbitVCS](http://rabbitvcs.org/) - TortoiseSVN inspired graphic tool for version control systems, with Nautilus and Thunar integration 69 | * [gitg](https://wiki.gnome.org/Apps/Gitg/) - a open-source GTK+ GUI client 70 | * [git-cola](http://git-cola.github.io/) - a cross-platform Git GUI client 71 | * [SGit](https://github.com/sheimi/SGit) - Git client for Android 4.x 72 | * [Ungit](https://github.com/FredrikNoren/ungit) - The easiest way to use git. On any platform. Anywhere. 73 | * [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. 74 | * [GitUp](http://gitup.co) - a clean, minimal Git client. Mac only. 75 | * [GitExtensions](https://gitextensions.github.io/) - a shell extension, a Visual Studio 2010-2015 plugin and a standalone Git repository tool. 76 | * [WorkingCopy](https://workingcopyapp.com) - a powerful Git client for iOS. Free with in-app purchase to unlock the ability to push commits. 77 | * [Git Add-ons](https://github.com/stevemao/awesome-git-addons) - Enhance the basic `git` CLI 78 | * [Fork](https://git-fork.com) - An awesome and free git client for macOS and Windows 79 | * [Magit](https://magit.vc) - A Git porcelain inside Emacs 80 | * [Vershd](https://vershd.io/) - a free for personal use effortless Git GUI for Windows, Mac, & Linux. 81 | 82 | 83 | ## Repository Hosting 84 | *People have plenty of options to host their source code* 85 | 86 | * [GitHub](http://github.com/) - the de-facto git hosting service. Perfect integration with most external services. 87 | * [Awesome GitHub](https://github.com/phillipadsmith/awesome-github) - Resources & Learning for GitHub 88 | * [GitHub Cheat Sheet](https://github.com/tiimgreen/github-cheat-sheet) 89 | * [GitHub Browser Extensions](https://github.com/stefanbuck/awesome-browser-extensions-for-github) 90 | * [BitBucket](http://bitbucket.org/) - well-known for its free private repository (5 user max). 91 | * [Kiln](https://www.fogcreek.com/kiln/) - paid Git repository hosting service 92 | * [GitLab.com](https://about.gitlab.com/gitlab-com/) - a free Git repository hosting service served by GitLab EE. Unlimited repositories and private collaborators 93 | * [AWS CodeCommit](https://aws.amazon.com/codecommit/) - a SaaS service provided by Amazon Web Service on high availability infrastructure 94 | * [Deveo](https://deveo.com/) - a paid repository hosting service with support for Git, Subversion, Mercurial, WebDAV 95 | 96 | ## Self-Hosted Repository 97 | *Or you can host the code yourselves* 98 | 99 | * [Gitolite](http://gitolite.com/gitolite/) - a simple with fine-grained access control. (For github repository: https://www.github.com/sitaramc/gitolite) 100 | * [GitHub Enterprise](https://enterprise.github.com/) - self-hosted solution provided from GitHub 101 | * [Bitbucket Server](https://www.atlassian.com/software/bitbucket/server) - self-hosted refrom Atlassian. Good integration with JIRA and other Atlassian products 102 | * [GitLab CE/EE](https://gitlab.com/) - a popular open-source Git (CE) with paid support option (EE). 103 | * [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 104 | * [GitBucket](https://github.com/takezoe/gitbucket/) - a GitHub clone powered by Scala. 105 | * [Gogs](http://gogs.io/) - a self-hosted Git Service written in Go. 106 | * [Gitea](https://gitea.io/) - a community managed fork of Gogs, lightweight code hosting solution written in Go. 107 | * [GitBlit](http://gitblit.com/) - Pure Java Stack for managing, view, and serving Git repositories. 108 | * [Apache Allura](https://allura.apache.org/) - an open source implementation of project hosting platform 109 | * [Phabricator](https://www.phacility.com/) - an integrated set of powerful tools to help companies build higher quality software (For github repo: https://www.github.com/phacility/phabricator) 110 | * [RhodeCode CE/EE](https://rhodecode.com/) - a platform delivering enterprise source code management 111 | 112 | ## Workflow 113 | *Inexpensive branching allows people adopt workflows other than the classic centralized workflow* 114 | 115 | * [Pro Git - Distributed Workflows](https://git-scm.com/book/it/v2/Distributed-Git-Distributed-Workflows) 116 | * [Atlassian Git Tutorial - Comparing Workflows](https://www.atlassian.com/git/tutorials/comparing-workflows) 117 | * [Gitflow](http://nvie.com/posts/a-successful-git-branching-model/) - the most well-known Git workflow model 118 | * [GitHub flow](http://scottchacon.com/2011/08/31/github-flow.html) - a simple branching model with a single master 119 | * [GitLab flow](https://about.gitlab.com/2014/09/29/gitlab-flow/) 120 | * [Git DMZ Flow](https://gist.github.com/djspiewak/9f2f91085607a4859a66) 121 | * [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) 122 | 123 | ## Hook management 124 | *Git provide hooks at commit/push phrase, allowing integration with and code quality checking tool and Continuous Integration (CI)* 125 | 126 | * [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. 127 | * [Overcommit](https://github.com/brigade/overcommit/) - a extendable Git hook manager written with Ruby. 128 | * [git-hooks](https://github.com/icefox/git-hooks/) - tool to manage project, user, and global Git hooks 129 | * [quickhook](https://github.com/dirk/quickhook/) - a fast, Unix'y, opinionated Git hook runner 130 | * [husky](https://github.com/typicode/husky) - Git hooks for Node.js, manage your hooks from your package.json 131 | * more on https://githooks.com/ 132 | 133 | ## Tools 134 | *Various tools for daily operations* 135 | 136 | * [awesome-git-addons](https://github.com/stevemao/awesome-git-addons) - lists more than 20 git addons including all available commands 137 | * [myrepos](https://myrepos.branchable.com/) - a tool to manage multiple version control repositories 138 | * [mu-repo](http://fabioz.github.io/mu-repo/) - a tool to help in dealing with multiple git repositories 139 | * [gr](http://mixu.net/gr/) - a tool for managing multiple git repositories 140 | * [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 141 | * [GitIgnore Collection](https://github.com/github/gitignore) - collection of gitignore files for various programming language 142 | * [etckeeper](http://etckeeper.branchable.com/) - a collection of tools to let /etc be stored in a git repository 143 | * [git-extras](https://github.com/tj/git-extras) – git utilities adding useful git commands. 144 | * [git-extra-commands](https://github.com/unixorn/git-extra-commands) - Another collection of useful git commands. 145 | * [git-follow](https://github.com/nickolasburr/git-follow) - a tool for following lifetime changes of a file throughout the history of a Git repository. 146 | * [Gitrob](https://github.com/michenriksen/gitrob) - a command line tool to find sensitive information lingering in publicly available files on GitHub 147 | * [gitFS](https://www.presslabs.com/gitfs/) - a FUSE file system that fully integrates with git 148 | * [Gitless](http://gitless.com/) - an experimental version of Git that changes some of Git's underlying concepts 149 | * [ghq](https://github.com/motemen/ghq) — Organization for remote repositories 150 | * [bash-git-prompt](https://github.com/magicmonty/bash-git-prompt) - An informative and fancy bash prompt for Git users 151 | * [conventional-changelog](https://github.com/conventional-changelog/conventional-changelog) - a set of tools for parsing [conventional commit](https://conventionalcommits.org/) messages from git histories 152 | * [gitforge](https://github.com/nhorman/gitforge) - Utility for manipulating git forges as a git subcommand 153 | * [forge-cli](https://github.com/remolueoend/forge-cli) - CLI tool for editing and creating issues and merge requests on github, gitlab, and others 154 | * [ghub](https://github.com/magit/ghub) - Client library for APIs of various Git forges 155 | * [gitman](https://github.com/seanpm2001/gitman) Tool to manage, fetch upstream and modify projects through various git websites. 156 | - [release-it](https://github.com/webpro/release-it) - Automate releases for Git repositories and/or npm packages. Changelog generation, GitHub/GitLab releases, etc. 157 | 158 | ## Extensions 159 | *Git is designed for source control management. but people extend the idea and push version control to everywhere* 160 | 161 | * [Git Large File Storage](https://git-lfs.github.com/) - practical solution for versioning large files. supported by GitHub 162 | * [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. 163 | * [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/). 164 | --------------------------------------------------------------------------------