代码之家  ›  专栏  ›  技术社区  ›  Maciaz

在主机上重新设置开发分支,主机恢复了几个提交。再次对还原的主控形状进行重设基础是否安全?

  •  1
  • Maciaz  · 技术社区  · 6 年前

    首先,我在大师的基础上:

    A - B - C
             \
              D' - E'
    

    然后,主服务器恢复了几次提交,看起来像:

    A - B
    

    在本地,我的dev分支仍然拥有 C 提交。做手术安全吗

    git pull origin master git rebase master

    A - B
          \
           D' - E'
    
    2 回复  |  直到 6 年前
        1
  •  0
  •   j6t    6 年前

    实现所需历史的一种方法是使用

    git rebase -i origin/master
    

    放弃不想要的承诺( C )从名单上。

    “安全吗?”是“是的,如果做对了”。

        2
  •  0
  •   jota    6 年前

    有一个简单的解决方案使用--on

    git rebase --onto B C
    

    从其父级在B上是C的HEAD重新设置可到达提交的基。

    提出解决方案的安全性

        master
            |
    A - B - C
             \ 
              D' - E'
                   |
                  HEAD
    

    git pull origin master

     master
        |
    A - B - C
             \ 
              D' - E'
                   |
                  HEAD
    

    git rebase master

    什么都不做。正如你所看到的,你的头已经在大师的基础上了。所以git会告诉你没什么可做的。

    在git中,所有本地(无推送)都是安全的,因为您没有未版本化的本地修改,如果您不确定要做什么,只需放置一些临时标记或分支即可。如果你把树弄乱了,你随时可以回到这些地方。