我为develop-branch上的一个功能实现了一个实现。它运作良好,但后来我提出了一个有趣的选择。在开发功能检查之前,我从开发分支的签到分支,以实现替代方案 现在我决定我的替代方案是更好的实现。但我不想放弃第一个实现。我的分支现在看起来像这样:
我想继续“开发”-branch并将第一个实现保留在“newoverview”分支上。
有没有比以某种方式保留每个分支的更改更简单的方法。撤消两个分支提交。将更改重新应用到正确的分支并再次签入?这听起来像很多容易出错的任务。
我可以告诉git接受第一次提交并将其置于“newoverview”分支和第二次提交以将其置于“开发”分支上吗?
Ann:我的存储库也有一个主分支。但是只有当我完成并且仅来自开发分支时,这个才会合并更改。所有其他分支也不会被推送到服务器。他们只是在当地。
答案 0 :(得分:1)
结帐到开发分支
git checkout develop
在开发之上创建一个新分支以保存结果。不要结账!
git branch alternative
使用newoverview减少对共同祖先的开发,这似乎是之前的提交。
如果不是之前的提交,请使用最后一个共同祖先的SHA而不是HEAD ^
git reset --hard HEAD^
git reset --hard abcd1234
将新功能合并到develop。
git merge newoverview
如果出现任何问题,请使用此方法恢复丢失的提交“SHA”
git reflog