What helps people get comfortable on the command line?

1000mH [she/her, they/them]@hexbear.net to Programming@programming.dev – 35 points –
jvns.ca

Sometimes I talk to friends who need to use the command line, but are intimidated by it. I never really feel like I have good advice (I’ve been using the command line for too long), and so I asked some people on Mastodon:

if you just stopped being scared of the command line in the last year or three — what helped you?

This list is still a bit shorter than I would like, but I’m posting it in the hopes that I can collect some more answers. There obviously isn’t one single thing that works for everyone – different people take different paths.

I think there are three parts to getting comfortable: reducing risks, motivation and resources. I’ll start with risks, then a couple of motivations and then list some resources.

I'd add ImageMagick for image manipulation and conversion to the list. I use it to optimize jpg's which led me to learn more about bash scripting.

43

You are viewing a single comment

-p --patch

Interactively choose hunks of patch between the index and the work tree and add them to the index. This gives the user a chance to review the difference before adding modified contents to the index.

This effectively runs add --interactive, but bypasses the initial command menu and directly jumps to the patch subcommand. See “Interactive mode” for details.

The documentation is entirely meaningless? What does it do?

You can stage individual chunks of a file.

Useful if you have a large set of changes you want to make separate commits for. I also just find that it’s a good way to do a review of each chunk before committing changes blindly.

Give it a shot some time, worst case is you stage some stuff that you don’t want to commit, but it’s non-destructive.

I'll occasionally

  1. stash my changes

  2. unstash them.

  3. Revise the file in my editor so only the chunk I want to commit is present

  4. Commit

  5. Unstash the changes again to get back the uncommitted change

It's clunky but it's robust and safe. It does sound a lot cleaner to just use commit -p though

Yeah, -p can help with that. I’m not much for “commit grooming” - as long as a branch merges to main cleanly and passes tests, I don’t care about an “ugly” commit history.