Workshops/Git Workshop

From London Hackspace Wiki
Jump to navigation Jump to search

Topics (draft)

  • Git is a 'stupid content tracker'
    • Why track content?
    • Key Git concepts
  • Tracking your content locally
    • Setting up Git for the first time
    • git init
    • The staging area
    • git add and git commit
    • What's going on? git status and git diff
    • What has been going on? git log and git show
    • Getting help
  • Branches
    • Why branch?
    • Creating a branch
    • Moving between branches
    • Merging branches
  • Working with remotes
    • What is a remote?
    • Cloning from a remote
    • Getting new commits from a remote
    • Sending your commits to a remote
  • Miscellaneous/Advanced Git
    • Ignoring files
    • Using and abusing the staging area (including stashing)
    • Rewriting history (git rebase and friends)
    • Finding out where things went wrong: git blame and git bisect
    • The reflog
    • Tags

Suggestions

Please add ideas for topics you'd like covered!

  • Naming and Addressing Things (suggestion from --PhilJones)
    • Often I try to look something up in the git documentation and the terminology can be confusing, if you come from other SCMs.
      • A clear explanation of what is exactly meant by HEAD.
      • How you refer to "the most recent commit" or "last Tuesday's commit" or "the second to last commit made by John that I pulled in this morning".
  • As a total newcomer I would favour a ground up, assume no prior knowledge version. Thanks. -- SpikeUK
  • It'd be great if we could collaboratively compile a cheat sheet during the workshop. I primarily use Hg for personal projects so always find myself having to doc hunt when I intermittently need to do anything with Git beyond clone & pull basics and that's when I get all confuzzled 'cos the docs assume comprehensive knowledge and semi-informed confusion is dangerous with SCMs! -- Anthony