The current slides for this workshop can be found in Google Drive.
The slides can be found in slides.md
. To build them I have used
Marp Next, please check their documentation to get you set up. I personally have simply installed their VS Code extension, and that gets you going, but the CLI works just as well.
The theme the project uses is haskell by @matsubara0507.
To compile the slides into a nice PDF simply run:
npx @marp-team/marp-cli slide-deck.md --pdf --theme theme.css
Below you will find the different exercises which will be run through during the workshop.
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative master..feature-branch
git reset --hard origin/feature-branch
https://github.com/8thlight/agw-rebase
- Simple rebase + interactive rebase for squashing
- Interactive rebasing for doing both at the same time
- Let's go back – there's one change which hasn't caused a conflict, but is wrong. Fix it.
- Add a comment somewhere in the code, in the rebased commit, not a new one.
- Rewrite commit message after having finished rebasing
- Now let's reset the branch and redo this with
git merge
- Why did rebase not mark that one change as conflict? What's the lesson learnt here?
- How could this whole situation have been avoided in the first place?
- Once you've finished rebasing, would you force push the branch or create a new one? Why?
- What's the main difference you've observed between merge and rebase? Which one makes you feel safer? Why? When would you use one or the other?
https://github.com/8thlight/agw-merge
- When merging
master
intofeature-branch
, which README does it keep? Why? Is it the same when we applyrebase
? - Run the log after having used
merge
and after having usedrebase
. What differences can you see? Hint: usegit log --one-line --decorate --color --graph
- What is the difference between running
git merge master
infeature-branch
and runninggit merge feature-branch
inmaster
? If you're not sure, run both and check the logs. - After doing the merge, if you run
git log
you'll see the merge commit has a special line saying:merge: commit1 commit2
, do you know why? - If we
git show
the merge commit, what content is there? Hint: try runninggit show HEAD^...HEAD
orgit diff commit1...commit2
Follow the instructions in https://github.com/8thlight/agw-bisect