A starting point for discovering the wonderful world of Git, GitHub, and Git Annex (Assistant)
Let's avoid this humorous, yet sad situation from PhD Comics.
- What is Git?
- A version control system, collaboration tool, and general awesomesauce.
- If you forget today, click "Help" at the top of any GitHub page
- What is GitHub?
- It's a web app
- There's also a desktop app
- And even a mobile app!
- What is Git good at?
- "Small" "text" files.
- Synchronization
- Collaboration
- Extra credit: What is Git Annex?
- A companion to git for big files
- We'll cover this in depth if there's time.
- Sign up for github, and verify your email.
- Command line tools (you'll need this!):
- GitHub recommends the official Git installer
- I recommend homebrew for hackers on OS X
- And it's easier to use your package manager (apt, yum, ...) for Unix, etc.
- GUI tools
- Windows & Mac, also supports hg: SourceTree
- Lightweight Mac client: GitX-dev
- Lightweight GTK client: gitg (get it with your package manager).
- Integrated with file manager:
- TortoiseGit on Windows
- RabbitVCS on Linux (also integrates with gedit)
- Many others are available, and you can search for even more!
- Integration for your text editor!
- Vim fugitive
- Emacs
- Sublime Text 2
- gedit (use RabbitVCS)
- Basic commands cheat sheet(s) (Note the links to other cheat sheets!)
- Gamified git
- GitHub sponsors this.
- Where does "help" go from GitHub? Here.
- @davclark is an awesome resource, himself! (when he's not being a jerk)
- Linux commands cheat sheet (also mostly works for OS X command line).
- git - the simple guide
- The visual github guide
- A problem-focused exploration of git features is available in @jkitzes' Data Science Lessons
- An IPython notebook (of course!) from @fperez.
- Lots of exposition on git + other mostly python stuff and python scripts for a standardized git workflow from @matthew-brett.
- Tons of R code to access public APIs from @karthik and the @rOpenSci team.
Map diffs are amazing:
CSV diffs are strangely not as good, but (properly formatted) CSV is displayed nicely and is searchable:
Read more here: http://git-annex.branchable.com/
Forking on github is same as cloning in the command line.
For branching, you should check the above link for now.