From: Junio C Hamano Date: Sun, 18 Sep 2005 17:22:04 GMT Subject: Re: Newbie falls at first hurdle Message-ID: <7vek7m5m0z.fsf@assigned-by-dhcp.cox.net> In-Reply-To: <200509181347.11403.alan@chandlerfamily.org.uk> Alan Chandler writes: > Yes - I had increasingly believed that with all the scripts being generated > with git that cogito was becoming irrelevant. That is not going to happen. The point of git barebone Porcelain (or Porcelainish commands) is to give minimally usable UI on top of Plumbing tools for people who like to get their hands dirty, and sometimes to demonstrate how to take advantage of new core features before Porcelains start using them. It is not about competing with real Porcelains. > Still struggling with how to cherry pick parts a previous > update (between possibly two other branches) and apply them to > a current branch - all the tutorials assume you want it all, > and I can't really understand what the cherry pick commands do > from their manuals. An example to pick a couple of commits from one branch to another. $ git show-branch master pu * [mister] Improve the safety check used in fetch.c ! [pu] Merge branch 'nuker' of .; branch 'merge' of . -- + [pu] Merge branch 'nuker' of .; branch 'merge' of . + [pu^3] Use git-merge instead of git-resolve in git-pull. + [pu^2] Add two options to diffcore. + [pu^2~1] Diff cleanup. + [pu^2~2] Retire rev-tree. + [pu^2~3] Retire git-export. ++ [mister] Improve the safety check used in fetch.c Let's cherry-pick two commits from pu branch: $ git cherry-pick pu^3 ; git cherry-pick pu^2~2 Then the result looks like this: $ git show-branch mister pu * [mister] Retire rev-tree. ! [pu] Merge branch 'nuker' of .; branch 'merge' of . -- + [pu] Merge branch 'nuker' of .; branch 'merge' of . + [pu^3] Use git-merge instead of git-resolve in git-pull. + [pu^2] Add two options to diffcore. + [pu^2~1] Diff cleanup. + [pu^2~2] Retire rev-tree. + [pu^2~3] Retire git-export. + [mister] Retire rev-tree. + [mister~1] Use git-merge instead of git-resolve in git-pull. ++ [pu~1] Improve the safety check used in fetch.c Note that new two commits are _not_ the same commit objects you cherry picked from the pu branch. They are new commits that introduce changes equivalent to them.