From StackOverflow:
Git is an open-source distributed version control system (DVCS) with an emphasis on speed. [tag:Git] was initially designed and developed by Linus Torvalds for [tag:Linux] kernel development. Every Git working directory contains a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server.
There are many resources and tutorials available free online for Git beginners; see the bottom of this page for links to some of these resources.
- Strong support for non-linear development
- Distributed development
- Compatibility with existing systems/protocols
- Efficient handling of large projects
- Cryptographic authentication of history
- Toolkit-based design
- Pluggable merge strategies
- Garbage accumulates unless collected
- Periodic explicit object packing
- The Git Community Book
- Official Git Wiki
- Git online documentation
- Git source code
- Git Wikipedia Article
- [How to install Git][ans_installgit]
- How do you set up Git? Try to cover Linux, Windows, Mac, think 'client/server' mindset.
- [How do you create a new project/repository?][ans_newrepo]
- [How do you configure it to ignore files (.obj, .user, etc) that are not really part of the codebase?][ans_ignorefiles]
- How do you get the latest code?
- [How do you check out code?][ans_checkcode]
- [How do you commit changes?][ans_commitchanges]
- [How do you see what's uncommitted, or the status of your current codebase?][ans_uncommit]
- [How do you destroy unwanted commits?][ans_reset]
- [How do you compare two revisions of a file, or your current file and a previous revision?][ans_diff_file]
- How do you see the history of revisions to a file?
- How do you undo (revert or reset) a commit?
- [How do you 'mark' 'tag' or 'release' a particular set of revisions for a particular set of files so you can always pull that one later?][ans_tagging]
- How do you branch?
- How do you merge branches?
- What is rebasing?
- How do I track remote branches?
- How can I create a branch on a remote repository?
- How do I delete a branch on a remote repository?
- Git workflow examples
- [msysgit][ans_guis] - Cross platform, included with Git
- [gitk][ans_guis] - Cross platform history viewer, included with Git
- [gitnub][ans_guis] - Mac OS X
- [gitx][ans_guis] - Mac OS X history viewer
- [smartgit][ans_guis] - Cross platform, commercial, beta
- tig - console GUI for Linux
- qgit - GUI for Windows, Linux
- [Git Extensions][ans_guis] - package for Windows, includes friendly GUI
###Any other common tasks a beginner should know?
- Git guide
- Pro Git - book by Scott Chacon
- Git magic
- gitcasts
- GitHub guides
- Git - SVN Crash Course
- Git from the bottom up
- Git ready
- gitref.org
- Git visual cheatsheet
- Githug
- tryGit
- A Visual Git Reference
- Comparison of revision control software [ans_newrepo]: http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide#320140 [ans_ignorefiles]: http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide#316062 [ans_commitchanges]: http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide#316055 [ans_uncommit]: http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide#319465 [ans_tagging]: http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide#322967 [ans_guis]: http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide#323559 [ans_installgit]: http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide#323764 [ans_checkcode]: http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide#323906 [ans_reset]: http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide#323898 [ans_diff_file]:http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide/1762631#1762631