更改git提交的“主要”分支?

时间:2012-02-25 01:58:23

标签: git branch commit

在GitHub上,我的网络图如下所示

---o---o---X--------------o---o master
            \
             Y-----Z test
              \
               o---o------o----------o devel


而在“精神”中它应该看起来更像这样。

---o---o---X--------------o---o master
            \
             Y----o-----o-----o-----------o devel
              \
               Z test

test分支只是对新功能的测试,从第一个图表可以看出devel是来自test的分支

2 个答案:

答案 0 :(得分:0)

为了清晰起见,我将命名master~2,即分歧点,“X”。

您可以将test分支重新定位在X上,然后将devel重新定位为test

如果不更改develmaster上的所有提交哈希值,就无法进行交换,因为每次提交都包含对其父项的引用,并且您要执行的操作会更改testdevel~4的父母。因此,只有rebase之类的历史记录重写命令或参考名称的移动才能实现您的目标。

答案 1 :(得分:0)

问题在于Ytest分支都“拥有”devel。为了解决这个问题,我安排了它只被devel分支“拥有”。

第1部分(使用gitk)

  • XZ
  • 创建补丁
  • temp
  • 创建新分支X

第2部分(使用git)

  • 将补丁应用于temp分支
  • 提交

第3部分(回到gitk)

  • 硬重置testtemp
  • 删除temp分支

gitready.com/beginner/2009/02/02/push-and-delete-branches