在master上重新建立了dev分支,master恢复了一些提交。再次基于还原后的主服务器是否安全?

时间:2018-12-05 07:43:04

标签: git version-control

首先,我以大师为基础

A - B - C
         \
          D' - E'

然后,主服务器还原了一些提交,因此远程看起来像:

A - B

在本地时,我的dev分支仍然具有C提交。做一个安全吗

git pull origin master git rebase master

某些提交不会重复吗?回到正途的正确方法是什么

A - B
      \
       D' - E'

2 个答案:

答案 0 :(得分:0)

获得所需历史记录的一种方法是使用

git rebase -i origin/master

并从列表中删除不需要的提交(C)。

“安全吗?”的答案是“是,如果操作正确”。

答案 1 :(得分:0)

问题解决方案

使用--onto

有一个简单的解决方案
git rebase --onto B C

这意味着:

  

重新确定可从其父代为C的HEAD到达HEAD的提交。

提议解决方案的安全性

就您而言,

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

git pull origin master

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

git rebase master

将什么都不做。如您所见,您的HEAD已经基于master。所以git会告诉你无事可做。

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