ebd9cec84b5445ce381467d598421ffa2997ddf8
Git.md
| ... | ... | @@ -1,4 +1,58 @@ |
| 1 | +Git is a widely used distributed version control system. On this page, I collected different resources, from how to learn Git as a beginner, to mastering advanced use cases. Enjoy! |
|
| 2 | + |
|
| 3 | +## Content |
|
| 4 | + |
|
| 5 | +- [Git at first sight](#git-at-first-sight) |
|
| 6 | + - [Cheat Sheets](#cheat-sheets) |
|
| 7 | + - [Quicklinks](#quicklinks) |
|
| 8 | +- [Interesting reads](#interesting-reads) |
|
| 9 | +- [Learning Git](#learning-git) |
|
| 10 | + - [The Git Parable](#the-git-parable) |
|
| 11 | + - [Basics](#basics) |
|
| 12 | + - [Learning (Git) by doing](#learning-git-by-doing) |
|
| 13 | + - [Intermediate](#intermediate) |
|
| 14 | + - [Advanced](#advanced) |
|
| 15 | +- [Specific Commands](#specific-commands) |
|
| 16 | + |
|
| 17 | +## Git at first sight |
|
| 18 | + |
|
| 19 | +### Cheat Sheets |
|
| 20 | + |
|
| 21 | +Cheat sheets are a great way to keep an overview over all the different commands and what they do. Many cheat sheets exist, so I will highlight the ones I found most interesting. |
|
| 22 | + |
|
| 23 | +Two rather unconventional ones: |
|
| 24 | + |
|
| 25 | +- Interactive Cheat Sheet (Webapp): [https://ndpsoftware.com/git-cheatsheet.html](https://ndpsoftware.com/git-cheatsheet.html) |
|
| 26 | +- Escape a git mess, step-by-step: [http://justinhileman.info/article/git-pretty/git-pretty.png](http://justinhileman.info/article/git-pretty/git-pretty.png) |
|
| 27 | + |
|
| 28 | +And two conventional ones: |
|
| 29 | + |
|
| 30 | +- Github Education Cheat Sheet: [https://education.github.com/git-cheat-sheet-education.pdf](https://education.github.com/git-cheat-sheet-education.pdf) |
|
| 31 | +- Git Cheat Sheet listing the most important basic commands: [https://github.com/nerdgirl/git-cheatsheet-visual/blob/master/gitcheatsheet.pdf](https://github.com/nerdgirl/git-cheatsheet-visual/blob/master/gitcheatsheet.pdf) |
|
| 32 | + |
|
| 33 | +### Quicklinks |
|
| 34 | + |
|
| 35 | +- Interatively visualizing commits and branches, including merging, rebasing, and simulating a remote repository: [https://learngitbranching.js.org/?NODEMO&locale=en_US](https://learngitbranching.js.org/?NODEMO&locale=en_US) |
|
| 36 | + |
|
| 37 | +## Interesting reads |
|
| 38 | + |
|
| 39 | +- [The (written) unwritten guide to pull requests](https://www.atlassian.com/blog/git/written-unwritten-guide-pull-requests) |
|
| 40 | +- Blog-Series about more advanced topics about the usage and the environment of git. |
|
| 41 | + - Creating the perfect commit: [https://css-tricks.com/creating-the-perfect-commit-in-git/](https://css-tricks.com/creating-the-perfect-commit-in-git/) |
|
| 42 | + - Branching strategies: [https://css-tricks.com/branching-strategies-in-git/](https://css-tricks.com/branching-strategies-in-git/) |
|
| 43 | + - Better collaboration with pull requests: [https://css-tricks.com/better-collaboration-with-pull-requests/](https://css-tricks.com/better-collaboration-with-pull-requests/) |
|
| 44 | + - Merge conflicts: [https://css-tricks.com/merge-conflicts-what-they-are-and-how-to-deal-with-them/](https://css-tricks.com/merge-conflicts-what-they-are-and-how-to-deal-with-them/) |
|
| 45 | + - Rebase vs Merge: [https://css-tricks.com/rebase-vs-merge-integrating-changes-in-git/](https://css-tricks.com/rebase-vs-merge-integrating-changes-in-git/) |
|
| 46 | + - Interactive Rebase: Clean up your Commit History [https://css-tricks.com/interactive-rebase-clean-up-your-commit-history/](https://css-tricks.com/interactive-rebase-clean-up-your-commit-history/) |
|
| 47 | + - Cherry-Picking Commits in Git [https://css-tricks.com/cherry-picking-commits-in-git/](https://css-tricks.com/cherry-picking-commits-in-git/) |
|
| 48 | + - Using the Reflog to Restore Lost Commits [https://css-tricks.com/using-the-reflog-to-restore-lost-commits/](https://css-tricks.com/using-the-reflog-to-restore-lost-commits/) |
|
| 49 | + |
|
| 50 | +## Learning Git |
|
| 51 | + |
|
| 1 | 52 | ### The Git Parable |
| 53 | + |
|
| 54 | +The Git Parable should be read or listened to by everyone, in my opinion. It's a great way to learn Git by understanding why it was designed the way it is today. Here, a short quote from the first section of the parable: |
|
| 55 | + |
|
| 2 | 56 | > The following parable will take you on a journey through the creation of a Git-like system from the ground up. |
| 3 | 57 | > Understanding the concepts presented here will be the most valuable thing you can do to prepare yourself to harness the full power of Git. |
| 4 | 58 | > The concepts themselves are quite simple, but allow for an amazing wealth of functionality to spring into existence. |
| ... | ... | @@ -10,36 +64,23 @@ Only text, no visuals. |
| 10 | 64 | - Slides from the talk: [https://github.com/jherland/git\_parable/blob/master/git\_parable.pdf](https://github.com/jherland/git_parable/blob/master/git_parable.pdf) |
| 11 | 65 | - Shorter video with text-to-speech audio of the original text and the slides of Johan Herland: [https://www.youtube.com/watch?v=GyHdoGZY69E&ab\_channel=JayneTheGrateful](https://www.youtube.com/watch?v=GyHdoGZY69E&ab_channel=JayneTheGrateful) |
| 12 | 66 | |
| 13 | -### Learning (Git) by Doing |
|
| 14 | -- Hands-on step-by-step guide from the basics to advanced stuff: [https://gitimmersion.com/index.html](https://gitimmersion.com/index.html) |
|
| 15 | -This guide is creating a small project in the ruby programming language, but it seems like you don't need to know ruby in order to follow the guide. |
|
| 16 | -- Program for a playful introduction to the most important git commands: [https://ohmygit.org/](https://ohmygit.org/) |
|
| 17 | -- Website for learning branching and modifying history in git: [https://learngitbranching.js.org/](https://learngitbranching.js.org/) |
|
| 18 | -This tutorial only teaches some parts of git! Some parts are not covered at all, but the other parts are covered beyond the basics. |
|
| 19 | - |
|
| 20 | -### Git Cheat Sheets |
|
| 21 | -- Interactive Cheat Sheet: [https://ndpsoftware.com/git-cheatsheet.html](https://ndpsoftware.com/git-cheatsheet.html) |
|
| 22 | -- Github Education Cheat Sheet: [https://education.github.com/git-cheat-sheet-education.pdf](https://education.github.com/git-cheat-sheet-education.pdf) |
|
| 23 | -- Git Cheat Sheet listing the most important basic commands: [https://github.com/nerdgirl/git-cheatsheet-visual/blob/master/gitcheatsheet.pdf](https://github.com/nerdgirl/git-cheatsheet-visual/blob/master/gitcheatsheet.pdf) |
|
| 24 | -- Escape a git mess, step-by-step: [http://justinhileman.info/article/git-pretty/git-pretty.png](http://justinhileman.info/article/git-pretty/git-pretty.png) |
|
| 25 | - |
|
| 26 | 67 | ### Basics |
| 68 | + |
|
| 27 | 69 | - Extensive Guide by Atlassian about many git commands (what they do, how to use them, and how they work): [https://www.atlassian.com/git/tutorials/setting-up-a-repository](https://www.atlassian.com/git/tutorials/setting-up-a-repository) |
| 28 | 70 | - Git for the lazy: [https://wiki.spheredev.org/index.php/Git\_for\_the\_lazy](https://wiki.spheredev.org/index.php/Git_for_the_lazy) |
| 29 | 71 | A very quick and shallow guide on how to get started with git. |
| 30 | 72 | - Talk “Introduction to Git” by Scott Chacon: [https://www.youtube.com/watch?v=ZDR433b0HJY&ab\_channel=InfoQ](https://www.youtube.com/watch?v=ZDR433b0HJY&ab_channel=InfoQ) |
| 31 | 73 | This talk seems to cover the basics on how to get started, but also with a few internals mixed in. |
| 32 | 74 | |
| 75 | +### Learning (Git) by Doing |
|
| 76 | +- Hands-on step-by-step guide from the basics to advanced stuff: [https://gitimmersion.com/index.html](https://gitimmersion.com/index.html) |
|
| 77 | +This guide is creating a small project in the ruby programming language, but it seems like you don't need to know ruby in order to follow the guide. |
|
| 78 | +- Program for a playful introduction to the most important git commands: [https://ohmygit.org/](https://ohmygit.org/) |
|
| 79 | +- Website for learning branching and modifying history in git: [https://learngitbranching.js.org/](https://learngitbranching.js.org/) |
|
| 80 | +This tutorial only teaches some parts of git! Some parts are not covered at all, but the other parts are covered beyond the basics. |
|
| 81 | + |
|
| 33 | 82 | ### Intermediate |
| 34 | -- Blog-Series about more advanced topics about the usage and the environment of git. |
|
| 35 | - - Creating the perfect commit: [https://css-tricks.com/creating-the-perfect-commit-in-git/](https://css-tricks.com/creating-the-perfect-commit-in-git/) |
|
| 36 | - - Branching strategies: [https://css-tricks.com/branching-strategies-in-git/](https://css-tricks.com/branching-strategies-in-git/) |
|
| 37 | - - Better collaboration with pull requests: [https://css-tricks.com/better-collaboration-with-pull-requests/](https://css-tricks.com/better-collaboration-with-pull-requests/) |
|
| 38 | - - Merge conflicts: [https://css-tricks.com/merge-conflicts-what-they-are-and-how-to-deal-with-them/](https://css-tricks.com/merge-conflicts-what-they-are-and-how-to-deal-with-them/) |
|
| 39 | - - Rebase vs Merge: [https://css-tricks.com/rebase-vs-merge-integrating-changes-in-git/](https://css-tricks.com/rebase-vs-merge-integrating-changes-in-git/) |
|
| 40 | - - Interactive Rebase: Clean up your Commit History [https://css-tricks.com/interactive-rebase-clean-up-your-commit-history/](https://css-tricks.com/interactive-rebase-clean-up-your-commit-history/) |
|
| 41 | - - Cherry-Picking Commits in Git [https://css-tricks.com/cherry-picking-commits-in-git/](https://css-tricks.com/cherry-picking-commits-in-git/) |
|
| 42 | - - Using the Reflog to Restore Lost Commits [https://css-tricks.com/using-the-reflog-to-restore-lost-commits/](https://css-tricks.com/using-the-reflog-to-restore-lost-commits/) |
|
| 83 | + |
|
| 43 | 84 | - Visual Git Reference: [http://marklodato.github.io/visual-git-guide/index-en.html](http://marklodato.github.io/visual-git-guide/index-en.html) |
| 44 | 85 | Visualizations about how common git commands work. |
| 45 | 86 | |
| ... | ... | @@ -50,8 +91,10 @@ A document explaining the internals of git (but also giving an introduction for |
| 50 | 91 | Guide for people that know how to use git, but want to learn something about the internals of git. |
| 51 | 92 | - Advanced Git topics by Atlassian: [https://www.atlassian.com/git/tutorials/advanced-overview](https://www.atlassian.com/git/tutorials/advanced-overview) |
| 52 | 93 | |
| 53 | -### Specific commands |
|
| 54 | -- `git log --all --color --graph --pretty=format:'%Cred%h%Creset -%C(bold blue)%d%Creset %s %Cgreen(%cr) %C(yellow)<%an>%Creset' --abbrev-commit` |
|
| 94 | +## Specific commands |
|
| 95 | + |
|
| 96 | +The following is a list of some commands that are not part of the absolute basics, but worth knowing. |
|
| 97 | + |
|
| 55 | 98 | - `git stash`: [https://www.atlassian.com/git/tutorials/saving-changes/git-stash](https://www.atlassian.com/git/tutorials/saving-changes/git-stash) |
| 56 | 99 | - `git revert`: [https://www.atlassian.com/git/tutorials/undoing-changes/git-revert](https://www.atlassian.com/git/tutorials/undoing-changes/git-revert) |
| 57 | 100 | - `git bisect`: [https://git-scm.com/docs/git-bisect](https://git-scm.com/docs/git-bisect) |