Git
An open-source distributed Revision control system. It quickly becomes the most popular revision control system among developers. It is fast and has many advanced features. But, I think the popularity is largely thanks to GitHub, which is a web-based software development hosting system based on git. It is somewhat notorious for its unfriendliness1
Related tools
Large files
Git LFS and annex are two primary tools. How do Git LFS and git-annex differ?
- https://git-lfs.github.com/ - git large file storage
- git annex
Tutorials and books
Cheatsheet
Books
- Pro Git book on git official homepage
Tutorials
Text/interactive
- http://gitimmersion.com/
- http://www.alistapart.com/articles/get-started-with-git/
- https://learngitbranching.js.org - an interactive tutorial on git branching.
- A Quick Introduction to Version Control with Git and GitHub in PLOS Comp. Biol.
Video
Commit message
Videos and talks
- on git by Linus Torvalds
- http://gitcasts.com/
- http://zachholman.com/talk/more-git-and-github-secrets/
Tips
- Git-pretty
- General
- Commit messages
- workflow
- diff
- rollback:
git reset --hard <tag/branch/commit id>
- submodules: http://chrisjean.com/2009/04/20/git-submodules-adding-using-removing-and-updating/
- To remove a submodule (since git 1.8.3)
git submodule deinit xxx
git submodule update --recursive
git submodule foreach git pull origin master
git submodule foreach git co master ; git submodule foreach git pull
- removing a submodule
- http://stackoverflow.com/questions/1535524/git-submodule-inside-of-a-submodule
- To remove a submodule (since git 1.8.3)
- hosting - if you want to host your repositories.
- system wide gitignore
git config --global core.excludesfile ~/.gitignore
- http://www.splitbrain.org/blog/2011-06/19-automate_github_pull_requests
- how to remove large files from history?
- http://stackoverflow.com/questions/9854810/cleaning-up-git-history
- http://gitready.com/beginner/2009/03/06/ignoring-doesnt-remove-a-file.html
- http://stackoverflow.com/questions/5563564/remove-files-from-git-repo-completely
- http://stackoverflow.com/questions/9855226/how-can-i-completely-remove-data-from-a-git-repository
- http://stackoverflow.com/questions/2100907/how-do-i-purge-a-huge-file-from-commits-in-git-history
Articles
- http://betterexplained.com/articles/aha-moments-when-learning-git
- http://nvie.com/posts/a-successful-git-branching-model/ - a nice git practice.
- http://jeffkreeftmeijer.com/2010/the-mighty-reflog-and-the-amazing-bisect/
- http://cocoawithlove.com/2010/12/version-control-for-solo-mac-developers.html
- http://www.metacircus.com/hacking/2011/02/18/play-git-like-a-violin.html - some useful alises.
- Aha! Moments When Learning Git
Quotes
People who say “teaching is the best way to learn” have never experienced the seat-of-your-pants terror of trying to merge unrelated histories during an intro to Git workshop. - https://mobile.twitter.com/Hao_and_Y/status/1095494322059923456