在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 --hard
到tag2
的黄金存储库的克隆中,但允许我从黄金回购中删除将来某个时候。
答案 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