Skip to content

initRepository

Creates a new repository in the specified folder.

Signature

ts
function initRepository(
  path: string,
  options?: RepositoryInitOptions,
  signal?: AbortSignal,
): Promise<Repository>;

Parameters

  • pathrequired · string

    Directory path to create new repository.

  • optionsnull | RepositoryInitOptions

    Options which can be used to configure how a repository is initialized.

    • bareboolean

      Create a bare repository with no working directory. Defaults to false.

    • descriptionstring

      If set, this will be used to initialize the "description" file in the repository instead of using the template content.

    • externalTemplateboolean

      Enable or disable using external templates. If enabled, then the template_path option will be queried first, then init.templatedir from the global config, and finally /usr/share/git-core-templates will be used (if it exists). Defaults to true.

    • initialHeadstring

      The name of the head to point HEAD at. If not configured, this will be taken from your git configuration. If this begins with refs/ it will be used verbatim; otherwise refs/heads/ will be prefixed.

    • mkdirboolean

      Make the repo path (and workdir path) as needed. The ".git" directory will always be created regardless of this flag. Defaults to true.

    • mkpathboolean

      Make the repo path (and workdir path) as needed. The ".git" directory will always be created regardless of this flag. Defaults to true.

    • modenumber

      Set to one of the RepositoryInit constants, or a custom value.

    • noDotgitDirboolean

      Normally a '/.git/' will be appended to the repo path for non-bare repos (if it is not already there), but passing this flag prevents that behavior. Defaults to false.

    • noReinitboolean

      Return an error if the repository path appears to already be a git repository. Defaults to false.

    • originUrlstring

      If set, then after the rest of the repository initialization is completed an origin remote will be added pointing to this URL.

    • templatePathstring

      When the externalTemplate option is set, this is the first location to check for the template directory. If this is not configured, then the default locations will be searched instead.

    • workdirPathstring

      The path to the working directory. If this is a relative path it will be evaluated relative to the repo path. If this is not the "natural" working directory, a .git gitlink file will be created here linking to the repo path.

  • signalnull | AbortSignal

    Abort signal.

Returns

  • Promise<Repository>

    A new repository.

Examples

Basic example.

ts
import { initRepository } from 'es-git';

const repo = await iniRepository('/path/to/repo');

Create bare repository.

ts
import { initRepository } from 'es-git';

const repo = await iniRepository('/path/to/repo.git', {
  bare: true,
});

Released under the MIT License.