Workshops/Git Workshop: Difference between revisions

From London Hackspace Wiki
No edit summary
mNo edit summary
 
(16 intermediate revisions by 6 users not shown)
Line 1: Line 1:
== Topics (draft)==
This workshop will teach you about [http://git-scm.com/ Git], the fast version control system. You'll learn how manage files for your own software projects, and how to collaborate with others'.
 
[http://groups.google.com/group/london-hack-space/browse_thread/thread/c206c01d6ac059d2 Discussion on the mailing list.]
 
== When ==
 
The workshop is running on the following dates:
 
* <s>Wednesday 23 February, 7pm - 10pm</s>
* '''Friday 18 March, 7pm - 10pm'''
 
[http://www.doodle.com/dr62yn99z4tyxdxm Doodle poll for these and future dates.]
 
== Prerequisites ==
 
We will be starting from scratch, assuming no prior knowledge about Git or any other version control system.
 
You will need to bring a computer to work on during the workshop.
 
It would be helpful if you could have Git already installed before you come to the workshop, so that we can get straight into it:
 
[[Workshops/Git Workshop/Installing Git|Git download links and installation help]]
 
== 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 38:
** 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 48:
** 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)
=== Miscellaneous/Advanced Grab-bag ===
** Rewriting history (git rebase and friends)
 
** Finding out where things went wrong: git blame and git bisect
Probably more freestyle. For now, these are in no particular order:
** The reflog
 
** Tags
* Common/recommended Git workflows
* Using GitHub
* 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 ==
Line 38: Line 72:
*** 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".
*** 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. -- [[User:SpikeUK|SpikeUK]]
* As a total newcomer I would favour a ''ground up, assume no prior knowledge'' version. Thanks. -- [[User:SpikeUK|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 confusion is dangerous with SCMs! -- [[User:Anthony|Anthony]]
** 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 [[User:SamLR|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! -- [[User:Anthony|Anthony]]
* Related to my above point, maybe we should collate a set of use cases/common workflows. -- [[User:Anthony|Anthony]]
** As well as common workflows (good idea!) could we have useful tools etc?  [[User:SamLR|SamLR]]
* How London Hackspace uses Github as a repo, and how to participate in its use. -- [[User:Ciemon|Ciemon]]
* "Don't panic" - common screw-ups and how to recover from them? -- [[User:Anthony|Anthony]]
 
[[Category:Workshops/Completed]]
[[Category:Workshops]]

Latest revision as of 02:35, 29 May 2013

This workshop will teach you about Git, the fast version control system. You'll learn how manage files for your own software projects, and how to collaborate with others'.

Discussion on the mailing list.

When

The workshop is running on the following dates:

  • Wednesday 23 February, 7pm - 10pm
  • Friday 18 March, 7pm - 10pm

Doodle poll for these and future dates.

Prerequisites

We will be starting from scratch, assuming no prior knowledge about Git or any other version control system.

You will need to bring a computer to work on during the workshop.

It would be helpful if you could have Git already installed before you come to the workshop, so that we can get straight into it:

Git download links and installation help

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, these are in no particular order:

  • Common/recommended Git workflows
  • Using GitHub
  • 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
  • "Don't panic" - common screw-ups and how to recover from them? -- Anthony