如何将本地提交的编辑移动到我的分支的旧版本?

时间:2011-07-22 17:41:55

标签: git

在Git中,我有一个带有一堆标签的外部中央黄金存储库:

黄金回购:

1 - 2 (tag1) - 3 - 4 - 5 (tag2) - 6 - 7 - 8 (tag3) - 9

我在该回购的克隆中有一堆混合的变更集:

1 - 2 (tag1) - 3 - 4 - 5 (tag2) - *5.1* - 6 - 7 - *7.1* - 8 (tag3) - *8.1* - 9

我需要创建一个新的仓库,它是tag2黄金仓库的克隆,我的编辑位于顶部:

1 - 2 (tag1) - 3 - 4 - 5 (tag2) - *5.1* - *7.1* - *8.1*

如何将我的编辑(由*5.1*, *7.1*, *8.1*指定)移动到已经reset --hardtag2的黄金存储库的克隆中,但允许我从黄金回购中删除将来某个时候。

1 个答案:

答案 0 :(得分:2)

克隆您的 repo并在tag2处创建一个新分支。你可以使用git cherry-pick desiredCommit将你的个人提交拉入该分支。

您仍然可以使用git fetch goldenRepo获取goldenRepo。

1)
git clone yourRepo

...(tag2)- *5.1* - 6 - 7 - *7.1* - 8 (tag3) - *8.1* - 9<-origin/your_orig_branch


2)

git branch the_new_branch tag2
git checkout the_new_branch

...(tag2)- *5.1* - 6 - 7 -*7.1* - 8 (tag3) - *8.1* - 9<-origin/your_orig_branch
        \
         \ <-the_new_branch


3)Cherry挑选你想要的每一个提交 git cherryPick 5.1

...(tag2)-*5.1* - 6 - 7 - *7.1* - 8 (tag3) - *8.1* - 9<-origin/your_orig_branch
         \
          \ - *5.1* <-the_new_branch


4)
git fetch goldenRepo

       /-- 6 - 7 - 8 (tag3) - 9<-remote/golden_branch
      / 
...(tag2) - *5.1* - 6 - 7 - *7.1* - 8 (tag3) - *8.1* - 9<-origin/your_orig_branch
      \
       \ - *5.1* - *7.1* - *8.1* <-the_new_branch