February 12, 2021
I needed to run prettier on only the files changed in one branch of my git repo. This solution is a bit hacky but it did the trick!
Get the files that were added or modified between this branch and master
git diff --diff-filter=MA --name-status master...
Once you have this list you can edit it in an editor to run prettier on each file. You might need to edit the path if your pretteir config sets a different root path than the git diff.
Output from git diff
M /projectroot/subproject/src/mypath/file1.ts M /projectroot/subproject/src/mypath/file2.ts A /projectroot/subproject/src/mypath/file3.ts
Edit this to be
npx prettier --write src/mypath/file1.ts npx prettier --write src/mypath/file2.ts npx prettier --write src/mypath/file3.ts
and copy paste into terminal. Done!
There is probably a neat one-liner bash command that could modify and pipe git output directly into prettier but I don’t know how to do that. This works great if not doing this too often!
You could also try replacing the new lines from git diff with a space in your editor and supplying the list to prettier that way. I haven’t tested this though!
npx prettier --write src/mypath/file1.ts src/mypath/file2.ts src/mypath/file3.ts
Note: if you just need to prettify files in a commit you can use pretty quick
Hi! I'm Darragh ORiordan.
I live and work in Sydney, Australia enjoying the mountains and the ocean.
I build and support happy teams that create high quality software for the web.
Contact me on Twitter!