我有2个分支,dev/Branch_1
和release/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
与其合并,但仍然是新文件被删除,新代码将在新分支中删除。
我不知道,可能听起来很疯狂,但这种情况正在发生,这是我第一次遇到这种情况。 我如何克服这一点,任何人都可以帮助我。
答案 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