Git 版本回退2
来源:互联网 发布:网络直播软件下载 编辑:程序博客网 时间:2024/06/05 16:04
今天接着上篇继续讲解,我们在日常团队协作开发中,经常会遇到这样的情景:当完成最后一个模块,为了抓紧时间赶最后一趟地铁,高高兴兴的把自己程序提交到远程仓库,刚回到家躺下,突然想到有个小失误不应该提交,遇到这种情况,需要回退,我们应该怎么处理呢?
首先,必须要明白的一件事,任何普通用户不能擅自做有关远程仓库回退的操作,如果你擅自回滚了远程仓库,会对项目团队其他人造成不可预知的影响。如果需要回退版本,先联系项目的仓库管理员,或项目负责人。
我们这时候需要用到git revert这条命令,我们之前讲了一个git reset,那两者有啥区别呢。先从概念入手:
(1) 如果你已经push改动的代码到线上代码库,reset删除指定commit以后,其实并不影响远程仓库的代码,这时候你git push可能导致一大堆冲突.但是revert并不会。
(2) reset 是在正常的commit历史中,删除了指定的commit,这时HEAD是向后移动了,而revert是在正常的commit历史中再commit一次,只不过是反向提交,他的HEAD 是一直向前的,因此此次操作之前和之后的commit和history都会保留,revert相当于递增了一条log。
举个例子吧:假设当前有3个commit,git log如下:
commit3(f3343d): add test3.c commit2(43dfff): add test2.c commit1(1qdd4r): add test1.c
执行 git revert HEAD~1之后,也可以执行git revert 43dfff... 会提示提交信息,提交后git log如下:
commit4: Reverts “test2.c” commit3: test3.c commit2: test2.c commit1: test1.c
上述执行完可以看出commit3,commit2都继续存在在记录中。
而执行 git reset HEAD~1之后,再次看git log,如下:
commit2: test2.c commit1: test1.c
commit3已经不再记录中,同时也没有递增一条新记录,当然按之前博客里讲的,test3.c并没有丢失,代码仍然保留。
其实今天讲的都很范范,我在以后的博客中会专门讲解git遇到的各种情况的处理办法。
上述版本回退,撤销修改的几种情况大体讲完,主要就是几个命令:git checkout,git reset,git revert 等等。后续会结合分支,在遇到具体情况具体讲解这一部分。
- Git 版本回退2
- git 回退版本
- Git-版本回退
- git 版本回退
- git回退版本
- git版本回退
- Git版本回退
- git版本回退
- Git版本回退
- git 版本回退
- Git 版本回退
- git版本回退
- git版本回退
- Git回退版本
- git版本回退
- git版本回退
- git版本回退
- git 版本回退
- poj1149(*网络流建模方法,paper题)
- 读书笔记 effective c++ Item 8 不要让异常(exceptions)离开析构函数
- [Android新手学习笔记25]-RecylerView简单应用
- JAVA栈帧
- (50)Java学习笔记——GUI
- Git 版本回退2
- 解决 libdl.so.2 not find
- 欢迎使用CSDN-markdown编辑器
- centos7下jenkins配置docker插件
- Linux服务管理
- Activiti 流程启动及节点流转源码分析
- linux指令(二)——用户、组和文件权限
- [Android新手学习笔记26]-Fragment简单例子
- git克隆项目和分支