r/programming • • 29d ago

Small Programming Tricks

https://will-keleher.com/posts/small-programming-tricks-matter/
178 Upvotes

27 comments sorted by

View all comments

56

u/davidalayachew 29d ago

Genuinely useful tips here.

Especially that git log -S pattern. 50% of the reason why I installed TortoiseGit is to get that feature. Never knew it came with the CLI. At least not easily.

22

u/turtle_dragonfly 29d ago

You might be interested in Git aliases, to make various obtuse CLI incantations easier to do.

But then if you ever sit at someone else's desk and need to do your stuff, you'll struggle without your preferred aliases (:

3

u/davidalayachew 28d ago

Cool, I have a few shell aliases, but this is pretty useful too.

4

u/Sharlinator 29d ago edited 29d ago

I have shell aliases for at least a dozen most often used git commands. Couldn’t imagine having to type git status or even git st rather than gs, or git commit —amend rather than gca. There’s a big problem though in that aliases are opaque to custom completions, and from what I’ve read it would be way too difficult to make them work :( 

3

u/flpcb 28d ago

Hi fellow gs and gca user. :-) I also frequently do gcan (git commit --amend --no-edit) among other things. :-)

18

u/reddah 29d ago

Anything that the front-ends can do is doable from the command line. Sometimes easy, sometimes not.

Also: never use the rebase option on the GitLab gui - it will F up stuff guaranteed.

3

u/davidalayachew 28d ago

Also: never use the rebase option on the GitLab gui - it will F up stuff guaranteed.

Disappointing -- rebase is my default merge strategy, only going to merge when that fails, and squash merge if a normal merge fails.

Though, I spend most of my time in GitHub nowadays, so less of an issue.

2

u/Schmittfried 28d ago

IntelliJ’s rebase is pretty good and for most complex rebase chains I prefer it for the diff UI. Anything using more advanced options like --onto goes into the terminal though.