Workshops/Git Workshop: Difference between revisions

From London Hackspace Wiki
(→‎Topics (draft): More structure)
Line 27: Line 27:
* Getting help (how to read the man pages without going crazy; terminology; other resources)
* Getting help (how to read the man pages without going crazy; terminology; other resources)


=== Tips and Tricks Grab-bag ===  
=== Miscellaneous/Advanced Grab-bag ===  


Miscellaneous or advanced Git topics. Probably more freestyle. For now, there are in no particular order:
Probably more freestyle. For now, there are in no particular order:


* Common/recommended Git workflows
* Common/recommended Git workflows

Revision as of 17:41, 19 February 2011

Programme (draft)

Guided tour

We'll cover the following topics, in a 'follow along on your own laptop' style. By the end of this you'll have a good grounding in everyday Git usage.

  • 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
  • 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
  • Getting help (how to read the man pages without going crazy; terminology; other resources)

Miscellaneous/Advanced Grab-bag

Probably more freestyle. For now, there are in no particular order:

  • Common/recommended Git workflows
  • 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
    • This would be excellent for me as well: I'm using git but only what I've learned/hacked from online a more through grounding would be excellent SamLR
  • 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
  • Related to my above point, maybe we should collate a set of use cases/common workflows. -- Anthony
    • As well as common workflows (good idea!) could we have useful tools etc? SamLR
  • How London Hackspace uses Github as a repo, and how to participate in its use. -- Ciemon