写在前面
最近在使用Hugo重建博客时发现GitHub Desktop是个挺好用的工具,简化了Git及Github的操作流程,多行命令,一键完成,实在是提高学习效率的利器。GitHub Desktop也是Github推出的桌面版工具,界面风格我也挺喜欢。对我这种觉得Git命令难记、Github不好操作的菜鸟来说简直就是神器!
话不多说,开始正题。
使用GitHub Desktop进行版本穿梭
回退到上一个版本
- 直接在GitHub Desktop界面右侧changes处点击查看本次文件的修改与上次commit版本的区别。
- 手动在本地文件中修正。若修正后与上次commit版本一致,则changes处显示0 changed files。即该本地仓库的状态与上次commit时状态一致。也可以说是回退到了上一个版本。
回退到非上一个版本
- 点击commit提交本次修改
- 然后在GitHub Desktop界面右侧History处选择你想要回退到的版本的下一个版本,右键选择
Revert changes in commit
- 然后打开文件中冲突发生的地方。
<<<<<<<
和>>>>>>>
中包裹的是发生冲突的代码。<<<<<<<
和===
中包裹的是本次修改的部分===
和>>>>>>>
中包裹的是你想要回退到的版本的相较它的上一个版本修改的部分。
- 手动解决冲突
- 假如我只想回退到我刚开始选择的版本,那就删除
<<<<<<<
和===
中包裹的是本次修改的部分 - 最后删除
<<<<<<<
、===
和>>>>>>>
- 现在本地文件就已经回退到开始选择的版本
- 点击commit,将更改提交到本地库,点击fetch/push提交到远程库。
进行不同版本间穿梭
大致操作与上面相同,也是使用Revert
命令
举例理解
假如我每天都提交自己的修改,
第一天:写了1111后提交
第二天:写了2222后提交
……
第五天:写了5555error,还给第二天的改成了2222error,第四天的改成了4444error(还没提交)
(1)假如我现在想回到第四天的状态,也就是上一天commit的版本(回退到上一个版本)
(2)我现在想回到第二天状态,也就是第二天commit的版本(回退到非上一个版本)
回退到上一个版本
直接在GitHub Desktop界面右侧changes处点击查看本次文件的修改与上次commit版本的区别
-
代表本次修改前的内容,+
代表本次修改后的内容,空白行是本次没有修改的内容。
若想回退到上一个版本,只需要在本地文件中删掉+
的标记行中本次修改的内容(深绿色标记)
修改完成后显示0 changed files
回退到非上一个版本
想回到第二天状态,直接选择第三天的提交,点击Revert changes in commit
冲突如下
<<<<<<
和===
中包裹的是本次修改内容,===
和>>>>>>
中包裹的是第二次提交的内容。
若想回退到第二个版本,只需在本地文件中删除<<<<<<
和===
中包裹的本次修改内容,最后删除三种分隔符。commit并push,保持本地库与远程库同步回退到第二次提交的内容即可。
辨析Revert与Reset
Revert
实际上是创建一个新的版本,只不过内容与要回退到的版本相同。各个版本的提交都有保留,后面也可以继续穿梭到其他版本。
而Reset
实际上是通过头指针指向了某个版本,回退到某一版本后不再保留回退到的版本与回退前的版本之间提交的版本。
实际使用中我个人建议使用Revert
,毕竟创作不易,直接删了有点可惜,况且还能为以后提供些错误参考。