Learn Git

To work with any linux based kernel, you will most certainly need to learn and use Git. There are many good resources online so this article is not currently trying to be yet another git tutorial. This article will provide useful links to other tutorials and resources. Hopefully cutting down the amount of time spent searching around.

=General Tutorials= There are a lot of webpages that are like this article... A collection of links! The best ones are listed here with, perhaps, a list of what you might expect upon landing?

Overview of Git
How are you supposed to use Git effectively if you don't know what it is or why it came to be?
 * Overview of Git
 * Linus talking about Git
 * Official Git Wiki Maybe better than this page?!!
 * Top Git commands
 * Stackoverflow collection of Git links
 * Kernel Hackers' Guide to Git - installing, clone, remote, diffs, changes, branches
 * Git How-To Videos - setup, workflow, interactive add, log, browsing, branching, merging, rebase, distributed workflow

Workflows
So how do I use Git effectively at the project level? What workflows does git provide?
 * A successful Git branching model
 * Branching Strategies in Git
 * Rebase/Push non-fast foward - How Git works, shared repository model, public visible repository model
 * Distributed Workflows

=Specific Tutorials= This links are likely duplicates of what you might find from the other guides above... They are good enough to warrant listing separately here. They are divided up by skill level and how familiar you are with Git to effectively use them.

Beginner

 * Git's Manual Page
 * A Git Cheat Sheet
 * Contribute to the kernel: patches, commit comments and more
 * Contribute to the kernel: patches, commit comments and even more
 * Create a patch from a single commit
 * Your patch was rejected...
 * Setup Github if you want your own public repository.
 * Interactive Add
 * Break previous commit into multiple commits - hint: rebase
 * Edit incorrect commit message
 * Cherry pick
 * Cherry pick
 * Debug with git bisect
 * Some Git Tips - branches and tags in log, see if where a commit is relative to tags, which branch contains commit,

Intermediate

 * a TI git intro
 * Merging (or cherry picking) in changes you want
 * Some Git magic
 * Rebase v Merge
 * git pull v git fetch
 * git fetch and merge