Reputation: 7736
I'd like to keep JavaScript (.js) files under git control.
However, if a TypeScript (.ts) file exists, I'd like to ignore the associated .js file.
Is there a way to achieve this with git?
EDIT: Preferably without changing directories and refactoring all the existing code.
Upvotes: 1
Views: 330
Reputation: 19772
A typical way to do this is to put any compiled output in some distribution directory. You might organized your directory structure like so:
src/
... various JavaScript files, etc.
dist/
... compiled output from any build tool you're using
Then in git, you can just ignore the dist
directory, and assume that anyone who is going to pull down that repo and work on it will either run the build tool manually, or it will built automatically as part of the installation process.
In other words, it's easier to organize it without depending on a specific set of git functionality. This is a pretty common pattern in the JavaScript world.
If you don't go for that method, another way to do it is to add some identifier to the files that you want to ignore. For example, you might prepend all your files you want to ignore with _
and then add this rule to your .gitignore
(see this answer for why the following works):
\_*
There are some drawbacks to this second approach:
Hope that helps.
Upvotes: 5