- cross-posted to:
- [email protected]
- cross-posted to:
- [email protected]
cross-posted from: https://lemmy.ml/post/14581344
I like this graphic, some of my favourites:
git log --oneline
is super useful for getting just a list of title of commits and nothing elsegit bisect
is a little known but extremely useful git archaeology command that automates binary searching for a regression.I just learned git bisect from https://ohmygit.org/! You run it, then checkout other commits all over the project, and mark them with git bisect good or git bisect bad. Then it paints all commits that led to the good one as good, and all the ones after the bad one as bad, so you just keep narrowing your window by playing checkout Jezzball until there’s only one commit left: the one that introduced the bad state.
The technical term is binary search.
Yeah but I didn’t know that term until I looked it up. Also OhMyGit didn’t cover using tests and automating it.
You’re gonna love this then:
alias gl='git log --graph --abbrev-commit --no-decorate --date=format:'\''%Y-%m-%d %H:%M:%S'\'' --format=format:'\''%C(8)%>|(16)%h %C(7)%ad %C(8)%<(16,trunc)%an %C(auto)%d %>|(1)%s'\'' --all'
I have a whole rc file full of shortcuts like this for Git and Docker.
Reminder to read the official git book. It’s free and it’s useful. My dudes, stop pretending to understand your tools and actually learn them.
Madness!
Looking great. Thanks.
Gits motto should be “fuck around and find out”
More like “don’t fuck around but find out anyway”.
“Fuck around, have no idea HOW you fucked around, fuck around some more trying to fix it, find out how badly you’ve collectively fucked around”
The only stuff I need, that should be easier
- commit all changes
- commit to other branch
- squash all commits to one
- configure a ssh key per user (especially when using different accounts, different username etc)
Commit -a isn’t easy?
Squashing is easy too, though no, there isn’t a “squash all” option, unless you’re working in a feature branch and check out master and git merge --squash branch: https://graphite.dev/guides/git-merge-squash
I’m sure there’s a way to commit to another branch without having it checked out, but that just sounds like a recipe for trouble.
And I have no idea how you’d manage to not have different ssh keys per user. You shouldn’t be reusing keys across accounts to begin with.
commit to other branch
‘cherrypick’
Is there anyone other than me who read
reflog
as re-flog the first time?Every time.
Always need to remind myself that
git
doesn’t go around flogging anyone.Some people use git to flog, though. See
git blame
LazyGit
For the lazy…
Love lazygit, am I better or worse a git now? Idk but I’m doing it much faster
Tangent are these VCS Rosetta Stones that might be interesting to some:
-
Darcs/Git/Mercurial: https://darcs.net/RosettaStone
-
tl;dr
git add . git commit -a git push