将提交更改为另一个分支

时间:2016-05-18 20:19:51

标签: git github branch commit

目前我有两个分支:Master和Dev。在上周我将我的工作提交给分支机构Master(分支错误),现在我需要将这些提交更改为DEV分支(右分支),有什么更好的方法可以做到这一点?

我在MAC上使用github桌面

干杯, 圣拉斐尔

3 个答案:

答案 0 :(得分:0)

你的问题不清楚。所以我假设您需要旧版本的master,并且需要新版本的Dev。这意味着您需要更改您的git历史记录。如果你已经将这些提交推送到你的遥控器,这不是你应该做的,因为你不想搞乱git历史。

您所做的是cherry-pick来自master的提交,然后将您的master重置为提交之前。

在此之前,您应备份数据:

git checkout master
git checkout -b backup_master
git checkout DEV
git checkout -b backup_DEV

如何挑选: How to cherry-pick multiple commits

答案 1 :(得分:0)

我的想法是使用补丁来避免可能的冲突。

git checkout master
git format-patch -1 HEAD (if thats all you want)
git checkout dev
git apply —check file.patch (check it first)
git am < file.patch

将HEAD替换为SHA HASH以获得您想要的最早提交,然后它将为每次提交当前创建* .patch。然后单独以正确的顺序将它们应用于开发。

然后你可以再次检查主服务器,通过检查SHA哈希来更改为你不想要主服务器之前的提交。然后用好消息将其提交回来。我认为可能会这样做。如果我误解了,或者我是公然错误的人,请纠正我。

答案 2 :(得分:0)

如果您已将这些提交推送到遥控器,则无法从MASTER分支中删除提交。

你可以做一件事,将最新的MASTER分支代码提取到DEV Branch。

为此: 备份DEV分支git checkout -b backup_DEV然后:

git checkout DEV

git stash

git rebase MASTER

git push DEV 

git stash pop

现在您可以在DEV中看到该提交。

相关问题