我的主分支在14次提交之前领先于origin / master。我希望它与origin / master同步,因为那些14个提交是针对特定分支而不是master。我该如何回滚?
答案 0 :(得分:5)
如果您希望本地主人与origin / master相同,那么您想要结帐master
并运行:
git reset --hard origin/master
请注意,这将丢弃工作目录中的任何更改。
答案 1 :(得分:2)
您的主分支有一些(14)提交,这些提交用于其他分支而不是主分支。因此,首先必须将工作复制到正确的分支。假设工作实际上是在名为dev-branch的分支中。在我们这样做之前,我们需要切换到dev-branch。
git checkout dev-branch
现在,使用git merge命令将工作从master转移到dev-branch。 git merge命令合并当前(dev-branch)分支的指定分支。
git merge master
如果发生合并冲突,请按照以下说明操作:http://softwarecave.org/2014/03/03/git-how-to-resolve-merge-conflicts/。如果没有冲突,请继续执行下一步。
将提交复制到正确的分支后,必须删除来自主分支的不需要的提交,并根据您的要求,本地主服务器需要与远程主服务器(origin / master)同步。 git reset --hard命令将工作目录中的更改丢弃到我们在此处指定为远程主服务器状态的指定状态。
git reset --hard origin/master
到目前为止,所有工作都已移至您所需的分支,已从本地主服务器中丢弃提交,本地主服务器与远程主服务器同步。
答案 2 :(得分:1)
假设您没有将代码推送到遥控器......
$git checkout yourBranch
$git rebase master
这会将更改从master转移到yourBranch
现在摆脱主人的提交
$git rebase -i HEAD~15
这将打开一个窗口,其中包含最近15次提交的列表,删除所有这些行。然后保存,然后按
编辑:根据@skeggse建议,使用最近的15次提交。请参阅注释以获取解释