在git中合并并删除远程分支

时间:2014-10-09 18:24:35

标签: git

我使用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)

我如何做到这一点?我搜索了很多但没有得到我想要的结果。

1 个答案:

答案 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:feature1git push --delete