for-each-branch v0.2.6
for-each-branch
Iterate over all branches in a repository.
Requirements
This library requires git to be available in your PATH!
Installation
npm install for-each-branchor
yarn add for-each-branchUsage
const { forEachBranch } = require("for-each-branch");
forEachBranch({
dir: "./a-local-git-workspace",
callback: obj => console.log(obj.branch)
});API
forEachBranch(options)
Calls git checkout for each remote branch and calls the callback. The options argument is an object with the following recognized keys:
dir- The directory of the Git workspacebranches(default/.+/) - Regular expression or string, branches not matching will be ignoredremote(defaultorigin) - Name of the Git remoteforce(defaultfalse) - Use--forcewhen callinggit checkoutreset(defaultfalse) - Reset the branch to the head of the remote branch after checkoutclean(defaultfalse) - Rungit cleanafter checkoutcallback(default() => {}) - The callback to call after each branch has been checked out. When the callback returns a Promise, execution will halt until it is resolved
To prevent accidental deletions,
force,resetandcleanall default tofalse. However, they should probably be set totruefor almost all use cases. Otherwise, switches between branches might not work or build results will be unreproducible.
The callback will receive an object of the form { dir, branch, head, branches, refs }, where dir is
the directory of the Git workspace, branch is the currently checked-out branch, head is the SHA of
the current HEAD of the branch, branches is a list of all (filtered) branches in the repository
and refs is a list of { branch, head } items.
Returns a Promise that resolves to a list of { branch, head } items.
License
MIT