Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

A couple of hidden gems:

git diff --staged (shows the diff between the last commit and what you've got staged, great when what you're staging is finicky, lets you double check that you have precisely the files/hunks you intended)

git log <file> (git log, but for just commits where <file> was touched; saves pilfering through all of git log, especially useful when the file only gets modified infrequently)

Random tip: when using git add --patch, try the 'e' option if you need more nuance than the hunks git provides (it contains instructions for how to ex/include individual lines, so you don't have to remember how to do it).



Wow, TIL `git diff --staged` exists and is an alias to `git diff --cached`, which I have used for many years. "staged" certainly feels more intuitive, but will I ever be able to undo this muscle memory?!


Same here. Just make it an alias: ds.

I’m using git dc, but it seems ds may be my new one, haha.


I find aliasing a lot of these saves me a good chunk of time and reduces the barrier to better organize my work.

In case anyone cares to browse or suggest their own: https://gitlab.com/Falimonda/gitrc


15 years… 15 years to discover git diff --staged !


I don't consider myself a git savvy person, but the help gives output, and I think this command is used a lot


> git diff --staged (shows the diff between the last commit and what you've got staged, great when what you're staging is finicky, lets you double check that you have precisely the files/hunks you intended)

If you set `git config --global commit.verbose true`, then Git will automatically include this diff in the comment section of the commit message editor.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: