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:

  • Get the age of a file in the terms of commits in git
  • How to ask Spring Cloud Config server to checkout configuration from specific branch?
  • How to compute the git hash-object of a directory?
  • Gitolite permissions on branches
  • Git diff HEAD vs --staged
  • Strange error while trying to clone a SVN repo via git
  •   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?

  • Capistrano 3 / SSHKit write to a file in custom task
  • What does “Git push non-fast-forward updates were rejected” mean?
  • Does git have anything like `svn propset svn:keywords` or pre-/post-commit hooks?
  • PHP content management system which tracks content through git
  • git-p4 migrates perforce “main” branch into git branches as subdirectories (doubled code in git branches)
  • Unable to reset to a clean working directory in git
  • 2 Solutions collect form web for “git apply changes from one commit onto another branch”


    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.