Git create branch from range of previous commits?

后端 未结 2 496
忘掉有多难
忘掉有多难 2020-12-08 04:45

I have a bunch of commits for an OS project and I want to pull out just the last say 20 commits into another branch so I can pull request.

How could I do this? The r

2条回答
  •  遥遥无期
    2020-12-08 05:21

    You can do this with cherry-pick. If your history of long_branch looks like this:

    A-B  <-- master
       \
        C-D-E-F-G-H  <-- long_branch
    

    and you want to move the contents of, say, F through H to a different branch, say, short_branch, which is based off of master:

    git checkout master -b short_branch
    

    which gives

    A-B  <-- master, short_branch
       \
        C-D-E-F-G-H  <-- long_branch
    

    then... (note that the commit range is E..H; the left side is non-inclusive for the range)

    git cherry-pick E..H
    

    which gives:

        F'-G'-H'  <-- short_branch
       /
    A-B  <-- master
       \
        C-D-E-F-G-H  <-- long_branch
    

    Note that I'm referring to the new commits as F', G', H' - this is because while they will contain the same effective changes as F, G, and H, they won't be the actual same commits (due to different parents + commit times).

提交回复
热议问题