git本地及远程分支回退
Git 远程 分支 本地 回退
2023-09-27 14:27:19 时间
1. git本地版本回退
Git reset --hard commit_id(可用 git log –oneline 查看)
2. git远程版本回退
git push origin HEAD --force #远程提交回退
下面的命令也可以实现远程版本回退
git reset --hard HEAD~1
git push --force
3. git reverse和git reset的区别
- git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。
- 在回滚这一操作上看,效果差不多。但是在日后继续merge以前的老版本时有区别。因为git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现,但是git reset是之间把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入。
- git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。
git reset + commit号
git reset命令后面是需要加2种参数的:
”–hard”
和”–soft”
。
这条命令默认情况下是”–soft”。执行上述命令时,这该条commit号之 后(时间作为参考点)的所有commit的修改都会退回到git缓冲区中。
使用git status命令可以在缓冲区中看到这些修改。而如果加上”–hard”参数,则缓冲区中不会存储这些修改,git会直接丢弃这部分内容。
但需要注意的一 个问题是:由于这样的重置是直接在本地的修改,无法提交到远程服务器,如果直接丢弃的内容已经被推到远程服务器上了,则会造成本地和服务器无法同步的问题。
即git reset –hard只能针对本地操作,不能针对远程服务器进行同样操作。如果从本地删掉的内容没有推到服务器上,则不会有副作用;如果被推到服务器,则下次本地和 服务器进行同步时,这部分删掉的内容仍然会回来。
而上面注意中提到的问题则可以很好的被git revert 命令解决。
git revert + commit 号
该命令撤销对某个commit的提交,这一撤销动作会作为一个新的修改存储起来,这样,当你和服务器同步时,就不会产生什么副作用。
相关文章
- Git远程仓库地址变更本地如何修改
- git pull 总提示让输入merge 信息
- git删除远程分支,删除本地分支
- Git 更改远程地址
- 看不到git远程分支
- git 看不到别人创建的远程分支
- git批量删除已合并的远程分支
- git 批量删除本地和远程的tag分支
- 版本控制软件爆出远程命令执行漏洞 涉及Git、SVN、Mercurial、CVS版本控制
- git 查看、创建、删除 本地,远程 分支
- Git 系列教程(14)- 远程分支
- idea中git远程版本回退
- git如何clone所有的远程分支
- git 切换远程分支
- 【Git】Git 分支管理 ( 解决分支合并冲突 | 前置环境准备 | 远程仓库发起分支合并 | 在远程仓库解决分支冲突 | 在远程仓库正式合并分支版本 )
- git init之后怎么关联github远程仓库拉取代码
- git切换远程分支和tag操作
- Git-添加远程仓库
- git版本回退详解(本地库+远程库)
- Git学习-->如何通过Shell脚本自动定时将Gitlab备份文件复制到远程服务器?