'\" t
.\" Title: git-reintegrate
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1
.\" Date: 06/03/2016
.\" Manual: \ \&
.\" Source: \ \&
.\" Language: English
.\"
.TH "GIT\-REINTEGRATE" "1" "06/03/2016" "\ \&" "\ \&"
.\" -----------------------------------------------------------------
.\" * 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
.\}
]