Browse files

man page: add an EXAMPLES section.

  • Loading branch information...
apenwarr committed May 30, 2009
1 parent e75d1da commit dd07906252a3983fdec396ea6c58de12548713e1
Showing with 62 additions and 0 deletions.
  1. +62 −0 git-subtree.txt
@@ -223,6 +223,68 @@ OPTIONS FOR split
subproject's history to be part of your project anyway.
+Let's use the repository for the git source code as an example.
+First, get your own copy of the git.git repository:
+ $ git clone git:// test-git
+ $ cd test-git
+gitweb (commit 1130ef3) was merged into git as of commit
+0a8f4f0, after which it was no longer maintained separately.
+But imagine it had been maintained separately, and we wanted to
+extract git's changes to gitweb since that time, to share with
+the upstream. You could do this:
+ $ git subtree split --prefix=gitweb --annotate='(split) ' \
+ 0a8f4f0^.. --onto=1130ef3 --rejoin \
+ --branch gitweb-latest
+ $ gitk gitweb-latest
+ $ git push gitweb-latest:master
+(We use '0a8f4f0^..' because that means "all the changes from
+0a8f4f0 to the current version, including 0a8f4f0 itself.")
+If gitweb had originally been merged using 'git subtree add' (or
+a previous split had already been done with --rejoin specified)
+then you can do all your splits without having to remember any
+weird commit ids:
+ $ git subtree split --prefix=gitweb --annotate='(split) ' --rejoin \
+ --branch gitweb-latest2
+And you can merge changes back in from the upstream project just
+as easily:
+ $ git subtree pull --prefix=gitweb \
+ gitweb-latest:master
+Or, using '--squash', you can actually rewind to an earlier
+version of gitweb:
+ $ git subtree merge --prefix=gitweb --squash gitweb-latest~10
+Then make some changes:
+ $ date >gitweb/myfile
+ $ git add gitweb/myfile
+ $ git commit -m 'created myfile'
+And fast forward again:
+ $ git subtree merge --prefix=gitweb --squash gitweb-latest
+And notice that your change is still intact:
+ $ ls -l gitweb/myfile
+And you can split it out and look at your changes versus
+the standard gitweb:
+ git log gitweb-latest..$(git subtree split --prefix=gitweb)
Written by Avery Pennarun <>

0 comments on commit dd07906

Please sign in to comment.