Moving master head to a branch

后端 未结 5 1281
刺人心
刺人心 2021-02-19 10:31

I have several feature branches and a master branch. Feature2 is done. Normally I would rebase (working with a remote SVN repo and would like to keep the history, so no regular

5条回答
  •  既然无缘
    2021-02-19 11:20

    No merging required - just rename the branches. Since you don't care about feature2 ('is done') nor the existing master (at 'E') you just need the following.

    git branch -d master
    git branch -m feature2 master
    

    Simple is better?

    Remember there are two key concepts involved:

    1. The Git commit graph, and
    2. The Git references

    When you do a merge (of various flavors and including rebase) you are changing the commit graph. The changes involve adding nodes, adding links or perhaps moving links. References (including branches and tags) only point to commits and thus changing a reference just changes the pointed-to commit - not the structure of the graph.

    So, in your case, there is no needed change to the structure, just a changing of the references.

    A one line version is:

    git branch -f master feature2
    

    which keeps the feature2 branch around (unlike the prior two-liner which axes feature2).

提交回复
热议问题