在两个分支之间切换/交换git签入的简便方法

时间:2015-05-15 09:57:57

标签: git version-control merge branch

我为develop-branch上的一个功能实现了一个实现。它运作良好,但后来我提出了一个有趣的选择。在开发功能检查之前,我从开发分支的签到分支,以实现替代方案 现在我决定我的替代方案是更好的实现。但我不想放弃第一个实现。我的分支现在看起来像这样:

branches

我想继续“开发”-branch并将第一个实现保留在“newoverview”分支上。
有没有比以某种方式保留每个分支的更改更简单的方法。撤消两个分支提交。将更改重新应用到正确的分支并再次签入?这听起来像很多容易出错的任务。

我可以告诉git接受第一次提交并将其置于“newoverview”分支和第二次提交以将其置于“开发”分支上吗?

Ann:我的存储库也有一个主分支。但是只有当我完成并且仅来自开发分支时,这个才会合并更改。所有其他分支也不会被推送到服务器。他们只是在当地。

1 个答案:

答案 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