在我在一个分支上执行git reset后,新代码在分支中的git merge之后覆盖

时间:2018-03-07 14:02:51

标签: git git-bash

我有2个分支,dev/Branch_1release/Branch_1

我在dev/Branch_1上工作并为此创建了一个发布分支release/Branch_1并将代码推送到存储库但是我搞砸了一些事情所以不得不回滚。我在分支git reset hard上执行dev/Branch_1并将其推送到存储库并与master分支合并。

我没有错误地开始使用release / Branch_1,并添加了一些功能和少量新文件。现在,当我想将release/Branch_1合并到dev/Branch_1以更新dev分支时,会发生什么,我在release/Branch_1中编写的代码被删除,新文件被添加到{{ git merge后也会删除1}}。没有任何内容合并到release/Branch_1

我尝试创建一个新分支,我从dev/Branch_1中提取代码并创建了一个新分支,origin master也尝试将dev/Branch_2与其合并,但仍然是新文件被删除,新代码将在新分支中删除。

我不知道,可能听起来很疯狂,但这种情况正在发生,这是我第一次遇到这种情况。 我如何克服这一点,任何人都可以帮助我。

1 个答案:

答案 0 :(得分:0)

如果你在错误的分支上做了一些提交,你不应该合并 all 分支,只修改新的提交:

 x--x--x--x--X--X--X release
          |
    origin/release
        dev

此处,X表示在release(已重置为dev)而非dev之上完成的新提交。

简单的rebase --onto可以解决问题:

git rebase --onto dev origin/release release
git branch -f release origin/release

那样做:

origin/release
    release
      |
x--x--x
       \ 
        X'--X'--X' dev