| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> 使用git revert回退版本 -> 正文阅读 |
|
[开发工具]使用git revert回退版本 |
我在这篇文章中介绍了如何使用git reset命令回退版本。 使用git reset回退版本_new9232的博客-CSDN博客_git 回退到最新版本 但是这种方法只适用于同一个分支只有一个人在修改代码。如果同一个分支有多人修改代码时,那这个命令就不适用了。为什么呢?我通过一个简单的例子说明下。 1、git reset弊端tom和jack两个人现在拉取的是同一个分支的代码,提交记录是下面这样的。 然后tom新增了一个four.txt文件并推送到了远程仓库。jack同时拉取了远程仓库的代码,这时tom和jack的提交记录变成了这样 ? ?然后呢,tom发现提交的代码有问题,于是进行了版本回退,并强制推送到了远程仓库。 这个时候就出问题了,由于jack本地仓库的代码比远程仓库代码新,所以jack此时拉取代码的话,是不能拉到tom回退后的代码的。 ? 我们看到,虽然jack进行了拉取,但第四次提交记录依旧在? 而且如果jack有了新的修改进行了提交,tom回退的版本又会重新出现 ?tom现在进行拉取 可以看到,tom回退的版本又出现了。 所以说,多人使用同一分支开发时,那么使用git reset命令进行版本回退就没用了。 2、git revert登场?同样的,tom和jack拉取同一分支的代码,提交记录如下 然后tom新增了一个four.txt文件并推送到了远程仓库。jack同时拉取了远程仓库的代码,这时tom和jack的提交记录变成了这样 ?接下来了,tom发现four.txt文件提交错了,于是进行了版本回退并强制推送到了远程仓库。 可以看到,回退到了 "第四个文件提交" 这个commit之前的状态了,four.txt文件已经没有了。 而且这个时候,jack再去拉取 ? 可以看到,four.txt也已经不见了。 总结?使用git reset回退版本时,可以看到你的提交记录就没了,而使用git revert回退版本时,提交记录依旧在,它其实相当于重新做了一个版本,但是和之前的版本一样。 我画了个示意图,应该能看明白这两个命令的区别了。 ? ? 由此,如果同一分支只有你一个人在进行开发,并且回退记录不想保留的话,可以使用git reset进行版本回退。如果同一分支有多人开发时,或者你想保留回退记录的话,就使用git revert |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 6:17:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |