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