git代码库回滚: 指的是将代码库某分支退回到以前的某个commit id
本地代码库的回滚证明下面的方法是可行的,直接使用sourcetree的“回滚提交”需要解决冲突。而使用下面的命令行回滚代码,直接就回滚了,不需要解决冲突。
【本地代码库回滚】:
git reset --hard commit-id :回滚到commit-id,讲commit-id之后提交的commit都去除。
(commit-id,只写sourcetree中【】中的id就行,不用都写全,因为id由40个16进制数字组成的,太长。只写 [d146028]这个就行了。)
git reset --hard HEAD~3:将最近3次的提交回滚
【远程代码库的回滚】
参考master远端代码库的回滚这一篇文章,这个方法稍微简单点。
下面的方法要稍微麻烦点。
【远程代码库回滚】:
自己测试可用的步骤:
1.回滚本地代码。比如想要回滚远程dev分支的代码。那么先使用上面的方法,先回滚本地dev分支的代码。
2.第一步完成后,删除远端的dev分支。
直接鼠标右键,选中删除分支,直接确定即可删除远端dev分支。
3.第二步完成后,将本地回滚后的dev代码推送到远程。
推送本地回滚好的dev分支到远端。
//下面的操作更稳妥一些,增加了备份分支的情况(即新建一个分支,从远端拉下来,用作备份。)
原理:先将本地分支退回到某个commit,删除远程分支,再重新push本地分支
操作步骤:
1、git checkout the_branch
2、git pull
3、git branch the_branch_backup //备份一下这个分支当前的情况
4、git reset --hard the_commit_id //把the_branch本地回滚到the_commit_id
5、git push origin :the_branch //删除远程 the_branch
6、git push origin the_branch //用回滚后的本地分支重新建立远程分支
7、git push origin :the_branch_backup //如果前面都成功了,删除这个备份分支
删除备份的分支,sourcetree不能够删除,必须用命令行删除。(而且必须用大写的字母D才可以,小写的字母d是不行的。)
还有一点注意,删除分支的时候,当前选中的分支不能是即将要删除的分支,必须将当前分支切换到其他分支上。