
Git
The git
helper provides a thin wrapper around invoking the git executable for repository operations.
Methods
Section titled “Methods”defaultBranch
Section titled “defaultBranch”Resolves the default branch, typically main
or master
, in the repository.
const df = await git.defaultBranch();
lastTag
Section titled “lastTag”Gets the last tag in the repository.
const tag = await git.lastTag();
branch
Section titled “branch”Gets the current branch of the repository.
const branchName = await git.branch();
Executes a git command in the repository and returns the stdout.
const output = await git.exec(["status"]);
listBranches
Section titled “listBranches”Lists the branches in the git repository.
const branches = await git.listBranches();
listFiles
Section titled “listFiles”Finds specific files in the git repository.
const files = await git.listFiles("modified");
Gets the diff for the current repository state.
const diffOutput = await git.diff({ staged: true });
Lists the commits with various filters. Includes sha, author, date, message and file names.
const commits = await git.log({ ... });
changedFiles
Section titled “changedFiles”Lists the files changed in the last commit.
const changedFiles = await git.changedFiles({ ... });
Configuring Ignores
Section titled “Configuring Ignores”Since GenAIScript uses git, it already supports the .gitignore
instructions. You can also provide additional repository-wide ignore through the .gitignore.genai
file at the workspace root.
**/genaiscript.d.ts
Shallow clones
Section titled “Shallow clones”You can create cached shallow clones of repositories to work on multiple repositories.
The shallowClone
method return a git
client instance.
The clones are created under the .genaiscript/git/...
directory and are cached based
on the repository/branch/commit
information.
const clone = await git.shallowClone("microsoft/genaiscript");
You can provide options to force the cloning
and/or running the install
command after cloning.
const clone = await git.shallowClone("microsoft/genaiscript", { force: true, install: true,});
Git in other repositories
Section titled “Git in other repositories”Use git.client
to open a git client on a different working directory. This allows you to run git commands on a different repository.
const other = git.client("/path/to/other/repo");const branch = await other.branch();