Autogenerated man pages for v1.3.1-g7464
[git.git] / man1 / git-rebase.1
1 .\"Generated by db2man.xsl. Don't modify this, modify the source.
2 .de Sh \" Subsection
3 .br
4 .if t .Sp
5 .ne 5
6 .PP
7 \fB\\$1\fR
8 .PP
9 ..
10 .de Sp \" Vertical space (when we can't use .PP)
11 .if t .sp .5v
12 .if n .sp
13 ..
14 .de Ip \" List item
15 .br
16 .ie \\n(.$>=3 .ne \\$3
17 .el .ne 3
18 .IP "\\$1" \\$2
19 ..
20 .TH "GIT-REBASE" 1 "" "" ""
21 .SH NAME
22 git-rebase \- Rebase local commits to a new head
23 .SH "SYNOPSIS"
24
25
26 \fIgit\-rebase\fR [\-\-onto <newbase>] <upstream> [<branch>]
27
28
29 \fIgit\-rebase\fR \-\-continue
30
31
32 \fIgit\-rebase\fR \-\-abort
33
34 .SH "DESCRIPTION"
35
36
37 git\-rebase replaces <branch> with a new branch of the same name\&. When the \-\-onto option is provided the new branch starts out with a HEAD equal to <newbase>, otherwise it is equal to <upstream>\&. It then attempts to create a new commit for each commit from the original <branch> that does not exist in the <upstream> branch\&.
38
39
40 It is possible that a merge failure will prevent this process from being completely automatic\&. You will have to resolve any such merge failure and run git rebase \-\-continue\&. If you can not resolve the merge failure, running git rebase \-\-abort will restore the original <branch> and remove the working files found in the \&.dotest directory\&.
41
42
43 Note that if <branch> is not specified on the command line, the currently checked out branch is used\&.
44
45
46 Assume the following history exists and the current branch is "topic":
47
48 .nf
49           A\-\-\-B\-\-\-C topic
50          /
51     D\-\-\-E\-\-\-F\-\-\-G master
52 .fi
53
54
55 From this point, the result of either of the following commands:
56
57 .nf
58 git\-rebase master
59 git\-rebase master topic
60 .fi
61
62
63 would be:
64
65 .nf
66                   A'\-\-B'\-\-C' topic
67                  /
68     D\-\-\-E\-\-\-F\-\-\-G master
69 .fi
70
71
72 While, starting from the same point, the result of either of the following commands:
73
74 .nf
75 git\-rebase \-\-onto master~1 master
76 git\-rebase \-\-onto master~1 master topic
77 .fi
78
79
80 would be:
81
82 .nf
83               A'\-\-B'\-\-C' topic
84              /
85     D\-\-\-E\-\-\-F\-\-\-G master
86 .fi
87
88
89 In case of conflict, git\-rebase will stop at the first problematic commit and leave conflict markers in the tree\&. You can use git diff to locate the markers (<<<<<<) and make edits to resolve the conflict\&. For each file you edit, you need to tell git that the conflict has been resolved, typically this would be done with
90
91 .nf
92 git update\-index <filename>
93 .fi
94
95
96 After resolving the conflict manually and updating the index with the desired resolution, you can continue the rebasing process with
97
98 .nf
99 git rebase \-\-continue
100 .fi
101
102
103 Alternatively, you can undo the git\-rebase with
104
105 .nf
106 git rebase \-\-abort
107 .fi
108
109 .SH "OPTIONS"
110
111 .TP
112 <newbase>
113 Starting point at which to create the new commits\&. If the \-\-onto option is not specified, the starting point is <upstream>\&.
114
115 .TP
116 <upstream>
117 Upstream branch to compare against\&.
118
119 .TP
120 <branch>
121 Working branch; defaults to HEAD\&.
122
123 .TP
124 \-\-continue
125 Restart the rebasing process after having resolved a merge conflict\&.
126
127 .TP
128 \-\-abort
129 Restore the original branch and abort the rebase operation\&.
130
131 .SH "NOTES"
132
133
134 When you rebase a branch, you are changing its history in a way that will cause problems for anyone who already has a copy of the branch in their repository and tries to pull updates from you\&. You should understand the implications of using \fIgit rebase\fR on a repository that you share\&.
135
136
137 When the git rebase command is run, it will first execute a "pre\-rebase" hook if one exists\&. You can use this hook to do sanity checks and reject the rebase if it isn't appropriate\&. Please see the template pre\-rebase hook script for an example\&.
138
139
140 You must be in the top directory of your project to start (or continue) a rebase\&. Upon completion, <branch> will be the current branch\&.
141
142 .SH "AUTHOR"
143
144
145 Written by Junio C Hamano <junkio@cox\&.net>
146
147 .SH "DOCUMENTATION"
148
149
150 Documentation by Junio C Hamano and the git\-list <git@vger\&.kernel\&.org>\&.
151
152 .SH "GIT"
153
154
155 Part of the \fBgit\fR(7) suite
156