2016-05-18 30 views
0

目前我有两个分支:Master和Dev。在上个星期,我提交了关于分支Master(分支错误)的工作,现在我需要将这些提交更改为DEV分支(右分支),有什么更好的方法来做到这一点?将提交更改为另一个分支

即时通讯使用的是Mac

干杯github上桌面, 拉斐尔

+0

您能否通过图表向我们展示'Dev'和'Master'分支之间的关系? –

回答

0

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

你要做的是从主人提交cherry-pick,然后将主人重置为提交之前。

之前,你这样做,你应该备份您的数据:

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

如何挑樱桃: How to cherry-pick multiple commits

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哈希的最古老的承诺,你会想,然后它会创建一个* .patch每个承诺电流。然后将它们单独应用于正确的顺序。

然后,您可以再次签出master,通过签出SHA哈希来更改到您不想在master上的提交。然后用一条好消息将其提交回去。我认为这可能会做到。请纠正我,如果我误解了,或者如果我是公然错误的家伙。

0

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

你可以做一件事取得最新的MASTER分支代码到DEV分支。

为: 备份您的Dev分支git checkout -b backup_DEV则:

git checkout DEV 

git stash 

git rebase MASTER 

git push DEV 

git stash pop 

现在你可以看到在DEV犯下。

相关问题