Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Version Control with Git

Version Control with Git

Rails Girls Frankfurt 2015 Talk by Claudius Coenen

Rails Girls Frankfurt

September 19, 2015

More Decks by Rails Girls Frankfurt

Other Decks in Education


  1. Why Version Control? welcome.html welcome_final.html welcome_final2.html welcome_final2-bernd.html welcome2.html welcome_2.html welcome_final2.html

    welcome_2.html welcome.html welcome_final.html welcome_final2-bernd.html welcome2.html • So, what is the newest version of this file? • Who changed the title? • Yesterday, it was working just fine. • Did you get my mail? • Who's working on XYZ? • Is this bugfix already included somewhere? • Who is working on this project, anyway?
  2. Safe-Keeping of Versions • When you check something into version

    control, it will remember this exact version for you • You can return to a previous version • You get a fancy timeline of your project Today Yesterday, 10:04 10.10.2012 14:12 06.03.2012 14:10
  3. Conflict Resolution • Files edited by different people can usually

    be resolved automatically. welcome.html (Alice) welcome.html (Bob) welcome.html (Both changes)
  4. The „Commit“ • An item in the history • Think

    of this as a snapshot of your project commit f303d887ebf263b466958ca7c83aebb9385936f0 Author: Claudius Coenen <[email protected]> Date: Sat Feb 15 02:08:44 2014 +0100 Ticket #2342: fixing file upload to work with animated gif Commit-Hash Commit-Message
  5. Full Workflow • DO STUFF change files the way you

    normally would • PREPARE git add the changes, so git knows about them • COMMIT git commit, preferably with a nice message think: committing to memory or: committment git pull git push
  6. Command Cheat Sheet (Infrequent Commands) • git config --global user.name

    “Jane Doe“ • git config --global user.email “[email protected]“ • git config --global color.ui true • git config --system core.editor <editor> • git init (creates a new repository) • git clone <repository url> („clones“ existing)
  7. Command Cheat Sheet (Frequent Commands) • git status • git

    log • git add • git commit • git checkout • git reset These Commands are Local! (what's up on my drive) (what happened so far) (prepare these files for commit) (commit the added files) (return to a previous version) (reset the git index)
  8. Command Cheat Sheet (Used often) • git fetch • git

    pull • git push (just download) (download AND merge) (send my changes out) These Commands go over the network* *) simplification
  9. Where to Start • Baby steps in your browser –

    http://try.github.io • Download git for your system – http://git-scm.com/downloads • Maybe add a Git client that suits your taste – At least try the commandline. Git in its purest form. – gitk, GitHub-App, SourceTree, GitTower, TortoiseGit • Integrate git into your IDE / Editor – Eclipse, Sublime, WebStorm, RubyMine, NetBeans
  10. Hand-Picked Resources • Git has extensive documentation – http://git-scm.com/documentation •

    There's a lot of Tutorials out there – http://marklodato.github.io/visual-git-guide/index-en.html – https://www.kernel.org/pub//software/scm/git/docs/everyday.html – http://www.teehanlax.com/blog/github-fundamentals/ – http://mislav.uniqpath.com/2010/07/git-tips/ – http://nvie.com/posts/a-successful-git-branching-model/ • In-Depth Info – http://git-scm.com/book • Cannon fodder for lengthy debates with your fellow geek – http://thkoch2001.github.io/whygitisbetter/