Difference between revisions of "Workshops/Git Workshop"

From London Hackspace Wiki
Jump to navigation Jump to search
(→‎Topics (draft): More structure)
Line 1: Line 1:
== Topics (draft)==
+
== 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'
 
* Git is a 'stupid content tracker'
 
** Why track content?
 
** Why track content?
Line 10: Line 15:
 
** What's going on? git status and git diff
 
** What's going on? git status and git diff
 
** What has been going on? git log and git show
 
** What has been going on? git log and git show
** Getting help
 
 
* Branches
 
* Branches
 
** Why branch?
 
** Why branch?
Line 21: Line 25:
 
** Getting new commits from a remote
 
** Getting new commits from a remote
 
** Sending your commits to a remote
 
** Sending your commits to a remote
* Miscellaneous/Advanced Git
+
* Getting help (how to read the man pages without going crazy; terminology; other resources)
** Ignoring files
+
 
** Using and abusing the staging area (including stashing)
+
=== Tips and Tricks Grab-bag ===
** Rewriting history (git rebase and friends)
+
 
** Finding out where things went wrong: git blame and git bisect
+
Miscellaneous or advanced Git topics. Probably more freestyle. For now, there are in no particular order:
** The reflog
+
 
** Tags
+
* 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 ==
 
== Suggestions ==

Revision as of 17:40, 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)

Tips and Tricks Grab-bag

Miscellaneous or advanced Git topics. 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