我使用git-svn
将svn的trunk和分支导入git。我把它们都放在git中但是分支独立,并没有指向行李箱。以下是图形显示的方式:
a<--b<--c<--d
\ \
\ (master)(remotes/trunk)
\
(remotes/feature1)
a<--b<--c<--d<--e
\
(remotes/branches/feature1)
我想要的是将遥控器/分支/功能1合并到遥控器/功能1并删除遥控器/分支/功能1,以便它可以:
a<--b<--c<--d
^ \
\ (master)(remotes/trunk)
\
e' (remotes/feature1)
我如何做到这一点?我搜索了很多但没有得到我想要的结果。
答案 0 :(得分:0)
请注意,在您的第二张图表中,您最终会得到e'而不是e。每当你改变父母身份时,即使引入的内容是相同的,你也会得到一个新的。
我猜你只是在本地回购中捏造东西,而不需要在上游进行更改?如果是这种情况,那么你可以选择移动sha,对分支指针做一些强制更新。
git checkout -b new_feature1
git cherry-pick e
git update-ref remotes/feature1 HEAD
git update-ref -d remotes/branches/feature1
如果您确实需要在遥控器上进行更改,那么您肯定不想进行update-ref。您必须改为git push -f new_feature1:feature1
和git push --delete
。