Skip to main content


This a built-in plugin to the Gasket CLI used to set up new apps with git repositories when using the gasket create command.


The features of this plugin hooks are in the lifecycles it hooks during the create process.


The prompt will ask users during the create command if they wish to initialize a git repo or not. This prompt will set the gitInit property of the create context. It is possible to default this in a preset, by setting this in the preset's package.json, under a gasket.create property.

In the following example, when a new app is created with this preset, a git repo will always be initialized, and the user not prompted.

"name": "gasket-preset-example",
"version": "1.2.3",
"main": "index.js",
"dependencies": {
"@gasket/resolve": "^2.0.0",
"gasket-plugin-example": "^1.0.0"
"gasket": {
"create" : {
"gitInit": true


During the create lifecycle, .gitignore and .gitattributes templates will be registered to be generated for the app.

If you have a plugin which needs to add git ignore rules, in the create lifecycle hook of your plugin, you can access gitignore helper to add rules. Rules can be added to different categories which will group them under comments.

The gitignore helper will only be placed on the CreateContext when this plugin is configured and gitInit is true, either by preset config or prompt.

Example adding gitignore

module.exports = {
id: 'gasket-plugin-example',
hooks: {
create(gasket, createContext) {
const { gitignore } = createContext;

// See if `gitignore` is on the create context
if(gitignore) {
// ignore a single file

// ignore wildcard rules

// ignore multiple files and/or directories
gitignore.add(['file1.js', 'dir2/']);

// add an ignore under a category
gitignore.add('node_modules', 'dependencies');

The resulting .gitignore that is generated will have all the added gitignore rules and comments for categories.

# -- .gitignore file --


# dependencies


After all the app contents are generated, this plugin's postCreate hook will make a first commit for the generated files. The timing for this hook is set to run last. It is important when creating plugins that implement postCreate hooks, that their timings do come after the Git plugin, especially if modifying files, otherwise those modifications will not be part of the first commit.

See plugin hook timings for more information.