View in Visual Studio Marketplace
.gitignore Generator for Visual Studio Code
Lets you easily and quickly generate
.gitignore file for your project using gitignore.io API.
- easy to use
- smart - lets you update existing
- custom rules - preserves user-defined rules upon update
- lightweight - no external dependencies!
Why do I need that?
Did you know that your operating system can store a lot of hidden files in every directory you create? How about
Icon? on macOS or
Desktop.ini on Windows? These are certainly not the files you want to commit to a Git repository.
And what about other files and directories used by various frameworks and tools? These may be
node_modules for Node.js or
vendors for PHP projects using Composer. And this is only the tip of the iceberg, so you can't possibly know every file that should be excluded from being commited to a repository.
That's where gitignore.io API comes in handy. It allows you to pick and choose tools, frameworks or operating system you're working with and it generates
.gitignore file containing all the exclusions you need for those. You can, of course, use the website manually and then save the generated
.gitignore file but leaving your editor to do just that is counterproductive.
Using this extension for Visual Studio Code you can achieve exactly that without ever leaving the editor (or even touching a mouse).
To install this extension go to
View->Extensions and search for
.gitignore Generator. Next click Install and then Reload.
The main purpose of this extension is to generate
.gitignore file but it's also smart enough to know if you already have one or if you added your custom rules to it. It's also OS-aware so it prechecks that checkbox for you.
To use the extension go to the Command Palette (
Shift+CMD+P on macOS or
Shift+CTRL+P on Windows) and launch
Generate .gitignore File command.
Case 1: You don't have .gitignore file yet
If you don't have
.gitignore file already you'll be prompted right away with the list of all available tools, frameworks etc. to choose from. You can select or deselect the item with
Space or by clicking the checkbox. Fuzzy-search is also available to speed things up.
Once you finished press Return (
Enter) and your
.gitignore file will be generated and saved on the disk.
Case 2: You already have .gitignore file generated by this extension
If you generated
.gitignore file before you'll be asked if you want to override it entirely or just update it. If you choose former option everything goes like described in Case 1. If you choose Update, all previously chosen items will be checked automatically so you don't have to do it again. Now you can choose other technologies or remove ones that you already have selected but don't want to use anymore.
Warning! If you have
.gitignore file that was not generated using this extension, updating will remove its content.
The cool thing is that using this extension doesn't mean that you can't put your own exclusion rules in
.gitignore file for fear of loosing them when you run Update command again.
Everything you put under
# Custom rules ... (at the bottom of the file) will be preserved on the next update.
Warning! If you choose Override option your custom rules will be lost.
If you have more than one folder open in the workspace you'll be asked which one to use to generate
.gitignore file into or update that file from.
Currently only one command is available:
extension.gitignoreGenerate (same as Generate .gitignore File in Command Palette)
By default, it's not bound to any keyboard shortcut but you're free to do so.
Although this extension works well I'm planning to add some extra features to it in the future. Some of them are:
- smart picker based on your project's files (i.e. checks node if you have
- custom rules picker (to save your own set of rules as an item to choose later)
.gitignore syntax highlighting
If you find any problems using this extension or you want to propose new features to it, feel free to open an issue on Github.
This project wouldn't be possible without already great gitignore.io API created by Joe Blau (@joe_blau). Thanks!