'\" t .\" Title: git-reintegrate .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 01/17/2021 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" .TH "GIT\-REINTEGRATE" "1" "01/17/2021" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" git-reintegrate \- Manage integration branches in Git .SH "SYNOPSIS" .sp .nf \fIgit reintegrate\fR \-\-create [] \fIgit\-reintegrate\fR \-\-generate [] \fIgit\-reintegrate\fR \-\-add= \fIgit\-reintegrate\fR (\-\-edit | \-\-rebuild | \-\-apply | \-\-cat | \-\-status) [] \fIgit reintegrate\fR (\-\-continue | \-\-abort) \fIgit\-reintegrate\fR \-\-list .fi .SH "DESCRIPTION" .sp This tool is a helper to be able to manage integration branches in Git easily\&. It does so by specifying a list of merges to be applied on top of a base branch\&. Each one of these merges can have a description that will be used as the merge commit message\&. .sp This instruction sheet can be autogenerated and modified in various ways through the command line, or manually edited\&. .sp Finally the integration branch can be rebuilt, and previous conflicts resolutions can be reused thanks to git rerere\&. .SH "OPTIONS" .PP \-\-create .RS 4 Create a new integration branch\&. .sp If no base is specified, \fImaster\fR is assumed\&. .RE .PP \-\-generate .RS 4 Generates the instruction sheet based on an existing integration branch\&. The messages of each merge commit will be parsed to construct the instructions\&. The messages should be in the standard form Merge branch \*(Aqname\*(Aq (or remote branch)\&. .sp If no base is specified, \fImaster\fR is assumed\&. .RE .PP \-\-[no\-]rebuild .RS 4 Rebuild the integration branch\&. .RE .PP \-\-edit .RS 4 Edit the instruction sheet\&. .RE .PP \-\-cat .RS 4 Print the instruction sheet\&. .RE .PP \-\-status .RS 4 Prints the status of the integration branch\&. .RE .PP \-\-add= .RS 4 Appends a line merge to the instruction list, causing that branch to be included in the integration branch when it is next rebuilt\&. This option may be specified multiple times to add multiple branches\&. .RE .PP \-\-continue .RS 4 Restart the rebuild process after having resolved a merge conflict\&. .RE .PP \-\-abort .RS 4 Abort the rebuild operation\&. .RE .PP \-\-[no\-]autocontinue .RS 4 Continues automatically if the rerere mechanism manages to resolve all conflicts during a merge\&. .RE .PP \-\-list .RS 4 List all the current integration branches\&. .RE .PP \-\-delete .RS 4 Delete an integration branch\&. It doesn\(cqt delete the branch itself, only the integration information\&. .RE .PP \-\-apply .RS 4 Applies the instruction sheet of the integration branch on top of the current branch\&. If a branch to merge is already completely merged in the current branch, it\(cqs skipped\&. .RE .sp If \-\-continue or \-\-abort are specified then no other options may be given\&. .SH "CONFIGURATION" .PP integration\&.autocontinue .RS 4 Sets the default for the \-\-autocontinue option\&. .RE .PP integration\&.autorebuild .RS 4 Automatically rebuild the integration branch after creating/editing it if \-\-no\-rebuild is not specified\&. .RE .SH "FORMAT OF INSTRUCTIONS" .sp The instruction sheet consists of a series of instructions which begin in column zero, each of which may be followed by indented comments\&. The following instructions are supported: .PP base \fI\fR .RS 4 Resets the state of the integration branch to the specified revision\&. This should always be the first instruction in the instruction sheet, and should appear only at the top of the instruction sheet\&. .RE .PP merge \fI\fR \fI[]\fR .RS 4 Merges the specified ref into the integration branch\&. Any comments following the instruction are appended to the merge commit\(cqs commit message\&. .sp If any options are given after the ref (and on the same line) then these are passed to \fIgit merge\fR\&. This may be useful for specifying an alternative merge strategy for a branch\&. .RE .PP fixup \fI\fR .RS 4 Picks up an existing commit to be applied on top of a merge as a fixup\&. .RE .PP commit .RS 4 Adds an empty commit with the specified message mostly to be used as a comment\&. .RE .PP pause .RS 4 Pauses the rebuild process, so the user can do certain actions manually, for example fixing a wrong conflict resolution\&. .RE .PP \&. \fI\fR .RS 4 Ignores this command and its description\&. This can be used to remove a branch from the integration branch without needing to delete it and its description from the instruction sheet\&. .RE .SS "Example" .sp .if n \{\ .RS 4 .\} .nf base master merge my\-experimental\-feature I think this is a good idea, but want to dogfood it before I decide whether to submit it upstream\&. merge my\-site\-specific\-changes Some changes to suit my environment\&. DO NOT SUBMIT THESE\&. .fi .if n \{\ .RE .\}