[ aws . codecommit ]
Merges two branches using the squash merge strategy.
See also: AWS API Documentation
See ‘aws help’ for descriptions of global parameters.
merge-branches-by-squash
--repository-name <value>
--source-commit-specifier <value>
--destination-commit-specifier <value>
[--target-branch <value>]
[--conflict-detail-level <value>]
[--conflict-resolution-strategy <value>]
[--author-name <value>]
[--email <value>]
[--commit-message <value>]
[--keep-empty-folders | --no-keep-empty-folders]
[--conflict-resolution <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
--repository-name
(string)
The name of the repository where you want to merge two branches.
--source-commit-specifier
(string)
The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).
--destination-commit-specifier
(string)
The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).
--target-branch
(string)
The branch where the merge is applied.
--conflict-detail-level
(string)
The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line.
Possible values:
FILE_LEVEL
LINE_LEVEL
--conflict-resolution-strategy
(string)
Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful.
Possible values:
NONE
ACCEPT_SOURCE
ACCEPT_DESTINATION
AUTOMERGE
--author-name
(string)
The name of the author who created the commit. This information is used as both the author and committer for the commit.
--email
(string)
The email address of the person merging the branches. This information is used in the commit information for the merge.
--commit-message
(string)
The commit message for the merge.
--keep-empty-folders
| --no-keep-empty-folders
(boolean)
If the commit contains deletions, whether to keep a folder or folder structure if the changes leave the folders empty. If this is specified as true, a .gitkeep file is created for empty folders. The default is false.
--conflict-resolution
(structure)
If AUTOMERGE is the conflict resolution strategy, a list of inputs to use when resolving conflicts during a merge.
replaceContents -> (list)
Files to have content replaced as part of the merge conflict resolution.
(structure)
Information about a replacement content entry in the conflict of a merge or pull request operation.
filePath -> (string)
The path of the conflicting file.
replacementType -> (string)
The replacement type to use when determining how to resolve the conflict.
content -> (blob)
The base-64 encoded content to use when the replacement type is USE_NEW_CONTENT.
fileMode -> (string)
The file mode to apply during conflict resoltion.
deleteFiles -> (list)
Files to be deleted as part of the merge conflict resolution.
(structure)
A file that is deleted as part of a commit.
filePath -> (string)
The full path of the file to be deleted, including the name of the file.
setFileModes -> (list)
File modes that are set as part of the merge conflict resolution.
(structure)
Information about the file mode changes.
filePath -> (string)
The full path to the file, including the name of the file.
fileMode -> (string)
The file mode for the file.
Shorthand Syntax:
replaceContents=[{filePath=string,replacementType=string,content=blob,fileMode=string},{filePath=string,replacementType=string,content=blob,fileMode=string}],deleteFiles=[{filePath=string},{filePath=string}],setFileModes=[{filePath=string,fileMode=string},{filePath=string,fileMode=string}]
JSON Syntax:
{
"replaceContents": [
{
"filePath": "string",
"replacementType": "KEEP_BASE"|"KEEP_SOURCE"|"KEEP_DESTINATION"|"USE_NEW_CONTENT",
"content": blob,
"fileMode": "EXECUTABLE"|"NORMAL"|"SYMLINK"
}
...
],
"deleteFiles": [
{
"filePath": "string"
}
...
],
"setFileModes": [
{
"filePath": "string",
"fileMode": "EXECUTABLE"|"NORMAL"|"SYMLINK"
}
...
]
}
--cli-input-json
| --cli-input-yaml
(string)
Reads arguments from the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton
. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with --cli-input-yaml
.
--generate-cli-skeleton
(string)
Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input
, prints a sample input JSON that can be used as an argument for --cli-input-json
. Similarly, if provided yaml-input
it will print a sample input YAML that can be used with --cli-input-yaml
. If provided with the value output
, it validates the command inputs and returns a sample output JSON for that command.
See ‘aws help’ for descriptions of global parameters.
To merge two branches using the squash merge strategy
The following merge-branches-by-squash
example merges the specified source branch with the specified destination branch in a repository named MyDemoRepo
.
aws codecommit merge-branches-by-squash \
--source-commit-specifier bugfix-bug1234 \
--destination-commit-specifier bugfix-bug1233 \
--author-name "Maria Garcia" \
--email "maria_garcia@example.com" \
--commit-message "Merging two fix branches to prepare for a general patch." \
--repository-name MyDemoRepo
Output:
{
"commitId": "4f178133EXAMPLE",
"treeId": "389765daEXAMPLE"
}
For more information, see Compare and Merge Branches in the AWS CodeCommit User Guide.
commitId -> (string)
The commit ID of the merge in the destination or target branch.
treeId -> (string)
The tree ID of the merge in the destination or target branch.