The secrets
of the Git
ninjas
@cburgdorf
Software Gardener
at CouchCommerce
Every commit is a full snapshot.
no Deltas for fuck's sake
Let's Talk About Branches
A branch is just a name for a specific commit
well almost
A branch is just a name for a specific commit
well almost
Committed on the wrong branch?
git branch featureBranch
git reset --hard HEAD~1
What the Head?!
How is that useful?
git makes it hard to lose work
As long as you ever had it COMMITTED
Commit early, commit often
Commit early, commit often
the reflog
Pitfalls?
commits that are not reachable by any branch/tag will be GC'ed after 30 days
Demo
Commit early, Commit often
yet, nobody wants to read this
We want this
your coworkers will thank you!
Demo
""I'll fix that later""
as a workflow
4 commands: wip, ap, add -p, rebase -i
Demo
Cherry picking
git cherry-pick
sha4711
git cherry-pick first~ .. last
git cherry-pick first~ .. last
Avoid unnecessary Merge commits
Use a rebase workflow
Because
merging blindly means
- your history becomes a mess
- YOU hide information in merge commits
- harder to do git bisect
- HARDER TO DO cherry picking
- YOU hide information in merge commits
- harder to do git bisect
- HARDER TO DO cherry picking
make the console your friend
git config --global alias.ca '!git add -A && git commit' git config --global alias.lg '!git log --pretty=one-line --abbrev-commit --graph --decorate' git config --global alias.wip '!git add -A && git commit -m "WIP"'
git config --global alias.ap '!git add -A && git commit --amend --no-edit'
One more thing
Thanks.
@cburgdorf
github.com/cburgdorf
slide.es/cburgdorf/the-secrets-of-the-git-ninjas
The secrets of the Git ninjas
By cburgdorf
The secrets of the Git ninjas
- 5,101