gfc

Simple way to initialize a new git repository in an empty directory, add a file and do a first commit (or skip that part in a directory with files). Useful for unit tests and generators.
Please consider following this project's author, Jon Schlinkert, and consider starring the project to show your :heart: and support.
Install
Install with npm:
$ npm install --save gfc
Usage
const firstCommit = require('gfc');
The main export is an async function that takes a callback or returns a promise when no callback is passed. A .sync method is also exposed.
Default behavior
The following steps can be customized with options:
- Creates a new git repository
- Adds a
.gitkeep
file if the cwd is empty. git add .
- do a first commit with the message
"first commit"
promise usage
Returns a promise if a callback is not passed.
firstCommit(cwd[, options])
.then(res => {
console.log('stdout: ' + res.stdout);
console.log('stderr: ' + res.stderr);
})
.catch(err => console.log('Error: ', err));
async usage
firstCommit(cwd[, options], function(err, stdout, stderr) {
if (err) {
console.error('exec error: ' + err);
return;
}
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
});
sync usage
firstCommit.sync(cwd[, options]);
Options
options.file
Type: object|boolean
Default: { path: '.gitkeep', contents: '' }
firstCommit.sync('foo/bar', { file: false })
options.message
Type: string
Default: 'first commit'
var options = {message: 'my amazing first commit'};
firstCommit('foo/bar', options, function(err) {
if (err) {
console.log(err);
} else {
console.log('done!');
}
});
options.exec
Type: object
Default: undefined
Options to pass to execSync.
var options = {
message: 'my amazing first commit',
exec: {
timeout: 3000,
killSignal: 'SIGTERM'
}
};
firstCommit.sync('foo/bar', options);
About
sh
$ npm install && npm test
sh
$ npm install -g verbose/verb#dev verb-generate-readme && verb
Related projects
You might also be interested in these projects:
- git-branch: Get the current branch for a local git repository. | homepage
- git-user-name: Get a user's name from git config at the project or global scope, depending on… more | homepage
- git-username: Get the username (or 'owner' name) from a git/GitHub remote origin URL. | homepage
- list-git-remotes: List the remotes for a local git repository. Sync and async. | homepage
Contributors
Commits | Contributor |
---|---|
6 | johno |
6 | jonschlinkert |
Author
Jon Schlinkert
License
Copyright © 2018, Jon Schlinkert. Released under the MIT License.
This file was generated by verb-generate-readme, v0.6.0, on March 09, 2018.