git apply changes from one commit onto another branch

I want to do something similar to git rebase but without collapsing parallel commits.

Let’s say I have the following commits:

  • How to find all the .git without permission denied message?
  • Understanding basic git hooks
  • How does “git push heroku master” know where to push to and how to push to a different repo?
  • Can I have my Git 'difftool' apply '--dir-diff' by default?
  • How to show current Git branch in an Android application programatically?
  • Checking what files would be added in directory
  •   B (bar)
     /
    A-C-D (foo)
    

    Now I want to take the changes that D introduced to C in branch foo, and apply them to B in branch bar. so that I end up with the following:

      B-E (bar)
     /
    A-C-D (foo)
    

    Where the difference between commits B and E is equal to difference between commits C and D. Is this possible? Is there a way to do it without creating a patch?

  • How do I undo this git configuration?
  • SVN to Git using svn-migration-scripts
  • iPhone Dev - How important is Project.pbxproj?
  • How to retrieve the hash for the current commit in Git?
  • pull request to a GitHub project from a forked repo that DOES NOT exist on GitHub
  • How to deploy client-side git hooks?
  • 2 Solutions collect form web for “git apply changes from one commit onto another branch”

    Yes:

    git checkout -b mergebranch B
    git cherry-pick D
    

    If the last commit on the branch that you want to cherry-pick out of (foo in the example) is a merge commit, you can point at the specific commit to cherry pick by using git cherry-pick branchname~1 to get the commit which was the parent of the merge.

    Git Baby is a git and github fan, let's start git clone.