git create commit from diff between two branches

后端 未结 3 1777
终归单人心
终归单人心 2021-01-30 00:57

I have two branches which have very little similar history, but are related to each other.

I want the changes between those two in one git commit.

3条回答
  •  花落未央
    2021-01-30 01:32

    It all comes down to a git reset --soft branch_b on top of a temp branch based on branch_a, and the result committed back to branch_b.

    This is a step-by-step walking through the process:

    #Start out on the branch with the code we want
    git checkout branch_a
    
    #create tmp branch same as branch_a (so that we don't change our local branch_a state during the operation)
    git branch tmp
    
    #working directory has all the code that we want, on tmp branch
    git checkout tmp
    
    # Change the branch head to the branch we want to be on. All the delta
    # between the current source code and branch_b is now staged for commit
    git reset --soft branch_b
    
    # Move away from tmp, so our commit will go directly to branch_b
    git checkout branch_b
    
    # Now you can examine the proposed commit
    git status
    
    # Add the delta we want to the branch
    git commit
    
    # Sanity check that the branches have the same content now (should return an empty line)
    git diff branch_A..branch_b
    
    # Remove tmp, we don't need it anymore
    git branch -D tmp
    

提交回复
热议问题