merge
Merges the given commit(s) into HEAD, writing the results into the working directory. Any changes are staged for commit and any conflicts are written to the index. Callers should inspect the repository's index after this completes, resolve any conflicts and prepare a commit.
For compatibility with git, the repository is put into a merging state. Once the commit is done (or if the user wishes to abort), you should clear this state by calling cleanupState()
.
Signature
class Repository {
merge(
annotatedCommits: AnnotatedCommit[],
mergeOptions?: MergeOptions | undefined | null,
checkoutOptions?: CheckoutOptions | undefined | null,
): void;
}
Parameters
- annotatedCommitsrequired · AnnotatedCommit[]
Commits to merge.
- mergeOptionsnull | MergeOptions
Merge options.
- diff3Styleboolean
Create diff3-style file
- failOnConflictboolean
If a conflict occurs, exit immediately instead of attempting to continue resolving conflicts
- filFavorFileFavor
Specify a side to favor for resolving conflicts
- findRenamesboolean
Detect file renames
- ignoreWhitespaceboolean
Ignore all whitespace
- ignoreWhitespaceChangeboolean
Ignore changes in amount of whitespace
- ignoreWhitespaceEolboolean
Ignore whitespace at end of line
- minimalboolean
Take extra time to find minimal diff
- noRecursiveboolean
If the commits being merged have multiple merge bases, do not build a recursive merge base (by merging the multiple merge bases), instead simply use the first base.
- patienceboolean
Use the "patience diff" algorithm
- recursionLimitnumber
Maximum number of times to merge common ancestors to build a virtual merge base when faced with criss-cross merges. When this limit is reached, the next ancestor will simply be used instead of attempting to merge it. The default is unlimited.
- renameThresholdnumber
Similarity to consider a file renamed (default 50)
- simplifyAlnumboolean
Condense non-alphanumeric regions for simplified diff file
- skipReucboolean
Do not write the REUC extension on the generated index
- standardStyleboolean
Create standard conflicted merge files
- targetLimitnumber
Maximum similarity sources to examine for renames (default 200). If the number of rename candidates (add / delete pairs) is greater than this value, inexact rename detection is aborted. This setting overrides the
merge.renameLimit
configuration value.
- diff3Styleboolean
- checkoutOptionsnull | CheckoutOptions
Checkout options.
- allowConflictsboolean
In safe mode, apply safe file updates even when there are conflicts instead of canceling the checkout. Defaults to false.
- ancestorLabelstring
The name of the common ancestor side of conflicts
- conflictStyleDiff3boolean
Indicates whether to include common ancestor data in diff3 format files for conflicts. Defaults to false.
- conflictStyleMergeboolean
Indicate whether a normal merge file should be written for conflicts. Defaults to false.
- dirPermnumber
Set the mode with which new directories are created. Default is 0755
- disableFiltersboolean
Indicate whether to apply filters like CRLF conversion.
- disablePathspecMatchboolean
Treat paths specified in
path
as exact file paths instead of as pathspecs. - dryRunboolean
Indicate that this checkout should perform a dry run by checking for conflicts but not make any actual changes.
- filePermnumber
Set the mode with which new files are created. The default is 0644 or 0755 as dictated by the blob.
- forceboolean
Take any action necessary to get the working directory to match the target including potentially discarding modified files.
- ourLabelstring
The name of the common our side of conflicts
- overwriteIgnoredboolean
Indicate whether ignored files should be overwritten during the checkout. Defaults to true.
- pathstring
Add a path to be checked out. The path is a <a href="https://git-scm.com/docs/gitglossary.html#Documentation/gitglossary.txt-aiddefpathspecapathspec">pathspec</a> pattern, unless
disablePathspecMatch
is set. If no paths are specified, then all files are checked out. Otherwise only these specified paths are checked out. - recreateMissingboolean
In safe mode, create files that don't exist. Defaults to false.
- refreshboolean
Indicate whether the index and git attributes should be refreshed from disk before any operations. Defaults to true,
- removeIgnoredboolean
Remove ignored files from the working dir. Defaults to false.
- removeUntrackedboolean
Remove untracked files from the working dir. Defaults to false.
- safeboolean
Indicate that the checkout should be performed safely, allowing new files to be created but not overwriting existing files or changes. This is the default.
- skipUnmergedboolean
Skip files with unmerged index entries. Defaults to false.
- targetDirstring
Set the directory to check out to
- theirLabelstring
The name of the common their side of conflicts
- updateIndexboolean
Prevents checkout from writing the updated files' information to the index. Defaults to true.
- updateOnlyboolean
Only update the contents of files that already exist. If set, files will not be created or deleted. Defaults to false.
- useOursboolean
Indicate whether the checkout should proceed on conflicts by using the stage 2 version of the file ("ours"). Defaults to false.
- useTheirsboolean
Indicate whether the checkout should proceed on conflicts by using the stage 3 version of the file ("theirs"). Defaults to false.
- allowConflictsboolean