In addition to the group work on our project (see Day 2 : Drops use cases and Bluetooth Low Energy), I started to work on the Friday presentation with Benjamin.
We were asked to present how branches work in Git. I decided yesterday to ask all the other students which topics they wanted us to investigate, with an initial list of propositions. This morning, Benjamin and I also discussed with Alexis and Samuel about the most important issues to address (because there is a lot to say about Git, and we have only 20 minutes including question time). In the end, we agreed on the following plan (titles are not final, in order to preserve some suspense):
- The staging area
- Branches and how to change the past (Git workflow, merge, rebase, amend, reset, revert, …)
- Git magic tricks (bisect, blame, stash, cherry-pick, …)
First, I found a few good readings about Git:
- http://git-scm.com/book (free online book) : a good introduction for newcomers, and the last part (Git Internals) is fascinating for more experienced users (it explains how the internal objects manipulated by Git work all together) ;
- Pragmatic Guide to Git, Travis Swicegood, The Pragmatic Programmers (paying book/ebook, I already had read it!): show a lot of recipes for basic to more advanced Git usage, very well written and useful ;
- http://nvie.com/posts/a-successful-git-branching-model/ (thanks Samuel!): how to successfully manage branches in a Git project (feature branches, bugfix branches, …) ;
- http://git-scm.com/blog/2011/07/11/reset.html: an extremely clear explanation (with pictures!!) of the different usages of git reset (soft, mixed, hard) and git checkout.
I also started to write the slides (part 1 is ready). Tomorrow, according to my Asana, I will have to finish my slides, work on the guided tour use case, and many other fun things!!
Spoiler alert: There will be Jedi and light sabers during the presentation on Friday. Meanwhile, may the force be with you!