User Tools

Site Tools


git_rebase

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
git_rebase [2019/03/07 14:39]
rpjday [SYNOPSIS]
git_rebase [2019/04/06 21:32]
rpjday [Simple example]
Line 6: Line 6:
  
 <​code>​ <​code>​
-git rebase [-i | --interactive] [<​options>​] [--exec <​cmd>​] [--onto <​newbase>​] +git rebase [-i | --interactive] [<​options>​] 
-        [<​upstream>​ [<​branch>​]] +  ​[--exec <​cmd>​] [--onto <​newbase>​] 
-git rebase [-i | --interactive] [<​options>​] [--exec <​cmd>​] [--onto <​newbase>​] +  [<​upstream>​ [<​branch>​]] 
-        --root [<​branch>​] +   
-git rebase --continue | --skip | --abort | --quit | --edit-todo | --show-current-patch+git rebase [-i | --interactive] [<​options>​] 
 +  ​[--exec <​cmd>​] [--onto <​newbase>​] 
 +  --root [<​branch>​] 
 +  - 
 +git rebase --continue | --skip | --abort | --quit | 
 +   --edit-todo | --show-current-patch
 </​code>​ </​code>​
  
 ===== The fundamental rebase operation ===== ===== The fundamental rebase operation =====
  
-Three components:+Three components ​define a rebase:
  
   * the //branch// to be rebased   * the //branch// to be rebased
   * the amount of that branch to be rebased   * the amount of that branch to be rebased
   * the target //commit// onto which to rebase   * the target //commit// onto which to rebase
 +
 +===== Examples =====
 +
 +==== Simple example ====
  
 <​code>​ <​code>​
-              A---B---C topic+              A---B---C ​          ​topic
              /              /
-        D---E---F---G master+        D---E---F---G ​            ​master
 </​code>​ </​code>​
 +
 +One of:
 +
 +<​code>​
 +$ git checkout topic
 +$ git rebase master
 +</​code>​
 +
 +or:
 +
 +<​code>​
 +$ git rebase master topic
 +</​code>​
 +
 +<​code>​
 +                      A'​--B'​--C' ​ topic
 +                     /
 +        D---E---F---G ​            ​master
 +</​code>​
 +
 +==== Example requiring "​--onto newbase"​ ====
  
 <​code>​ <​code>​
Line 34: Line 64:
                         o---o---o ​ topic                         o---o---o ​ topic
 </​code>​ </​code>​
-===== DESCRIPTION ===== 
  
 <​code>​ <​code>​
-If <​branch>​ is specified, ​git rebase ​will perform an automatic +git rebase ​--onto master next topic
-git checkout <​branch>​ before doing anything else. Otherwise it +
-remains on the current branch.+
 </​code>​ </​code>​
- 
-In other words, the final optional argument ''​[branch]''​ can always be omitted if you first just: 
  
 <​code>​ <​code>​
-$ git checkout <​branch>​+                          o---o---o ​ topic 
 +                         / 
 +        o---o---o---o---o ​ master 
 +             \ 
 +              o---o---o---o---o ​ next
 </​code>​ </​code>​
  
-then just pretend it says ''​HEAD''​. 
  
-===== Examples ===== 
  
 ==== Removing a sequence of commits ===== ==== Removing a sequence of commits =====
git_rebase.txt · Last modified: 2019/04/06 21:34 by rpjday