Compare commits

...

34 Commits

Author SHA1 Message Date
Dick Tang 599b294327
Merge branch 'master' into typo_fix 2023-07-20 00:37:47 +08:00
Dick Tang 0cf291b391
Merge pull request #69 from rbereziuk/master
Add lazygit, terminal UI for git commands
2023-07-20 00:33:01 +08:00
Dick Tang a966bee7fe
Merge pull request #68 from kellyjonbrazil/patch-1
Add jc --git-log tool
2023-07-20 00:29:36 +08:00
Dick Tang efbdeb346c
Merge branch 'master' into patch-1 2023-07-20 00:29:23 +08:00
Dick Tang e6f2289cc4
Merge pull request #75 from groda/patch-1
add tutorial on .gitignore
2023-07-20 00:28:28 +08:00
Dick Tang f3e620631d
Update README.md 2023-07-20 00:27:45 +08:00
Dick Tang 33a980b91b
Merge pull request #80 from jonhadfield/add_soba
Adds new tool: soba.
2023-07-20 00:27:03 +08:00
Dick Tang 0d7d3a107f
Merge pull request #77 from shellwhale/soft-serve
Add Soft Serve
2023-07-20 00:20:36 +08:00
Dick Tang 45cb27d35a
Add Agit-flow 2023-07-20 00:19:06 +08:00
Jon Hadfield b6d5e4225d
Adds new tool: soba. 2023-07-09 19:27:37 +01:00
shellwhale 644ec93eb9
Add Soft Serve 2023-03-28 18:30:25 +02:00
groda ff224f915d
add tutorial on .gitignore 2022-12-11 22:53:25 +01:00
Roman Bereziuk bdf358eaa0 Add lazygit, terminal UI for git commands 2022-06-29 17:11:48 +03:00
Dick Tang 2aa39665d1
Update README.md 2022-05-21 11:56:28 +08:00
Kelly Brazil 99563870ab
Add jc --git-log tool
Added the `jc --git-log` tool which can convert git logs to JSON.
2022-04-27 12:01:13 -07:00
Dick Tang 1f2e7ee307 add onedev 2022-04-14 15:04:27 +00:00
Dick Tang c152f86b3e
Merge pull request #59 from puneetsingh24/master
Adding a new tutorial - git cherry-pick
2022-04-14 20:16:59 +08:00
Dick Tang fdbd60759a
Merge branch 'master' into master 2022-04-14 20:16:49 +08:00
Dick Tang f9d4226314
Merge pull request #65 from glimow/master
Added Mookme, a simple git hook manager for monorepos.
2022-04-14 20:15:58 +08:00
Dick Tang bb19c11935
Merge pull request #66 from cooperspencer/master
Added gickup to the tools section
2022-04-14 20:15:34 +08:00
Dick Tang ec52fea556
Merge branch 'master' into master 2022-04-14 20:15:22 +08:00
Dick Tang 275fab7d11 style fix 2022-04-14 12:13:39 +00:00
Dick Tang 0bf23c9add update Phabricator; remove broken git-hooks; add multi-gitter and gitwalk; misc 2022-04-14 12:11:49 +00:00
Dick Tang 9c792fb586 refactor workflow section 2022-04-14 08:47:05 +00:00
Dick Tang 58529603e5 add Azure DevOps; item reordering 2022-04-14 07:52:13 +00:00
Dick Tang 55ae631641 add jetbrains space 2022-04-14 07:44:53 +00:00
Dick Tang 44e6e0972c remove upsource 2022-04-14 07:43:06 +00:00
Dick Tang 54b83d8fe4 add cover image 2022-04-14 07:40:59 +00:00
Dick Tang 766a249152
Update README.md 2022-04-14 15:21:26 +08:00
Andreas Wachter 6b577cadff
Update README.md 2022-01-03 10:04:09 +01:00
Tristan Kalos c1fe1f88f4 Added Mookme, a simple git hook manager for monorepos. 2021-10-27 17:14:07 +02:00
Dick Tang c8a1584e63
Merge pull request #58 from Blightysoft/master
Added Vershd, a free for personal use Git GUI.
2021-09-30 15:35:53 +08:00
Puneet Singh 3b4cfe25c4
Adding a new tutorial - git cherry-pick
Introduction to Git Cherry-pick and its usages.
2020-12-03 13:02:17 +05:30
Paul F. Wood bd68307c8c Added Vershd, a free for personal use Git GUI. 2020-11-26 08:55:41 +00:00
2 changed files with 36 additions and 10 deletions

View File

@ -1,3 +1,5 @@
![Cover image](cover.png)
# Awesome Git
A curated list of amazingly awesome Git tools, resources and shiny things.
@ -19,10 +21,8 @@ Pull requests on interesting tools/projects/resources are welcome.
## Tutorial
*There are tons of learning material on the Web*
* [Flight rules for Git](https://github.com/k88hudson/git-flight-rules) - guide about what to do when things go wrong
* [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
* [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
* [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
@ -51,6 +51,10 @@ Pull requests on interesting tools/projects/resources are welcome.
* [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 <code>.gitignore</code>](https://github.com/groda/the_ultimate_gitignore_guide) All about `.gitignore`.
## Style Guide
*Style guide when you work with git*
@ -60,23 +64,25 @@ Pull requests on interesting tools/projects/resources are welcome.
## Client
*Git clients are available on every platform, from mainframe to your mobile device*
* [TortoiseGit](https://tortoisegit.org/) - an easy-to-use Git client on Windows. well-integrated with Windows Explorer.
* [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.
* [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.
* [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
* [Fork](https://git-fork.com) - An awesome and free git client for macOS and Windows
* [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
@ -87,9 +93,11 @@ Pull requests on interesting tools/projects/resources are welcome.
* [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).
* [Kiln](https://www.fogcreek.com/kiln/) - paid Git repository hosting service
* [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
@ -99,34 +107,45 @@ Pull requests on interesting tools/projects/resources are welcome.
* [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
* [GitBucket](https://github.com/takezoe/gitbucket/) - a GitHub clone powered by Scala.
* ~~[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 Alibabas 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.
* [git-hooks](https://github.com/icefox/git-hooks/) - tool to manage project, user, and global Git hooks
* [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
@ -135,6 +154,8 @@ Pull requests on interesting tools/projects/resources are welcome.
* [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
@ -148,7 +169,12 @@ Pull requests on interesting tools/projects/resources are welcome.
* [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.
* [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.
* [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*

BIN
cover.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB