]> git.phdru.name Git - git-wiki.git/commitdiff
Example of git reflog + git reset + git cherry-pick
authorOleg Broytman <phd@phdru.name>
Mon, 29 Jun 2015 19:24:12 +0000 (22:24 +0300)
committerOleg Broytman <phd@phdru.name>
Mon, 29 Jun 2015 19:24:12 +0000 (22:24 +0300)
pep-git.txt

index a8be119599a534550dc8763d4ab691b57fc4ed78..b2e30384b9a98d101ab50d50f9942428e497603d 100644 (file)
@@ -467,6 +467,18 @@ reflog``, verify it with ``git show`` or ``git log`` and run ``git
 reset $COMMIT_ID``. Git stores the move of the branch's head in
 reflog, so you can undo that undo later again.
 
+In a more complex situation you'd want to move some commits along with
+resetting the head of the branch. Cherry-pick them to the new branch.
+For example, if you want to reset the branch ``v2`` back to the
+original commit but preserve two commits created in the current branch
+do something like::
+
+    $ git branch save-v2 # create a new branch saving v2
+    $ git reflog # find the original place of v2
+    $ git reset $COMMIT_ID
+    $ git cherry-pick save-v2~ save-v2
+    $ git branch -D save-v2 # remove temporary branch
+
 git revert: revert a commit
 ---------------------------