目前我有两个分支:Master和Dev。在上个星期,我提交了关于分支Master(分支错误)的工作,现在我需要将这些提交更改为DEV分支(右分支),有什么更好的方法来做到这一点?将提交更改为另一个分支
即时通讯使用的是Mac
干杯github上桌面, 拉斐尔
目前我有两个分支:Master和Dev。在上个星期,我提交了关于分支Master(分支错误)的工作,现在我需要将这些提交更改为DEV分支(右分支),有什么更好的方法来做到这一点?将提交更改为另一个分支
即时通讯使用的是Mac
干杯github上桌面, 拉斐尔
你的问题还不清楚。所以我假设你需要你的老版本的主版本,并且你需要你的新版本的Dev。这意味着你将需要改变你的git历史记录。如果你已经将这些提交推送到你的遥控器,这不是你应该做的,因为你不想搞乱git历史。
你要做的是从主人提交cherry-pick
,然后将主人重置为提交之前。
之前,你这样做,你应该备份您的数据:
git checkout master
git checkout -b backup_master
git checkout DEV
git checkout -b backup_DEV
我的想法是使用补丁,以避免可能的冲突。
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上的提交。然后用一条好消息将其提交回去。我认为这可能会做到。请纠正我,如果我误解了,或者如果我是公然错误的家伙。
如果您已将这些提交推送到远程,则无法从MASTER分支中删除提交。
你可以做一件事取得最新的MASTER分支代码到DEV分支。
为: 备份您的Dev分支git checkout -b backup_DEV
则:
git checkout DEV
git stash
git rebase MASTER
git push DEV
git stash pop
现在你可以看到在DEV犯下。
您能否通过图表向我们展示'Dev'和'Master'分支之间的关系? –