Can you revert a single file from an old commit? (Git, bitbucket)

My preferred method of doing a partial revert is this:

git revert --no-commit <commid-id-to-revert>

At this point the changes from that revert will all be staged. You can unstage any files you don't wish to revert, and modify/re-stage any files you wish to tweak. (In your specific case you would unstage all files except the one you wish to revert.) Note it's possible you'll have conflicts. You can just "keep current" for any conflicts on files you don't wish to revert, but for conflicts on those that you wish to keep you'll need to resolve them the same way you normally would.

When you're finished making changes, continue the revert from the command line so the commit message is auto-populated:

git revert --continue

Tip: By default, when you revert a commit, the commit message will look something like:

Revert "Title of commit message being reverted"

This reverts commit <some-commit-id-here>.

My recommendation is to change that message, specifically for partial reverts, to something like this:

Revert (Partial) "Title of commit message being reverted"

This (partially) reverts commit <some-commit-id-here>.

A custom explanation of which parts of the commit are being reverted,
and why.