1.3 KiB
Check If A File Is Under Version Control
The git ls-files command can be used with the --error-unmatch flag to check
if a file is under version control. It does this by checking if any of the
listed files appears on the index. If any does not, it is treated as an error.
In a project, I have a README.md that is under version control. And I have
node_modules that shouldn't be under version control (which is why they are
listed in my .gitignore file). I can check the README and a file somewhere in
node_modules.
❯ git ls-files --error-unmatch README.md
README.md
❯ git ls-files --error-unmatch node_modules/@ai-sdk/anthropic/CHANGELOG.md
error: pathspec 'node_modules/@ai-sdk/anthropic/CHANGELOG.md' did not match any file(s) known to git
Did you forget to 'git add'?
Notice the second command results in an error because of the untracked
CHANGELOG.md file in node_modules.
Here is another example of this at work while specifying multiple files:
❯ git ls-files --error-unmatch README.md node_modules/@ai-sdk/anthropic/CHANGELOG.md package.json
README.md
package.json
error: pathspec 'node_modules/@ai-sdk/anthropic/CHANGELOG.md' did not match any file(s) known to git
Did you forget to 'git add'?
Each tracked file gets listed and then the untracked file results in an error.
See man git-ls-files for more details.