本人在之前已经讲述过了本地Git的基本操作了,此篇博客主要讲述远程服务器端的Git操作。
演示前的准备
仍然接着之前博客里面建立的repository来展开:
以上是之前本人演示之后的git仓库,为了以下的演示,这里再次写入一个示例代码exception.c:
这段代码里面存在指针错误,想了解此代码错误详情的读者请阅读本人之前的博客《常见的Linux C指针错误》。
把写好的这个代码提交上远程的Gitee仓库(此步骤之前的博客里有说明):
git add ./exception.c
git commit -m "This is a wrong example"
git pull
git push
远程的Gitee仓库出现以下界面即可:
准备工作完毕!
远程仓库中代码的删除
前一篇博客本人讲述了如何在Gitee的远程仓库里提交代码,那么现在本人就来介绍一下如何进行其逆过程——删除远程仓库(git服务器)中的代码。
第一步,执行git中的rm命令:
git rm exception.c
这一步命令的作用同Git中的add命令类似,只是作用相反,前者是添加一个代码文件,后者是删除一个代码文件。执行的结果如下:
此时说明上面的代码已经从远端的Git仓库里删除了。
远端仓库中代码的恢复
假设之前是误删了远程Git仓库中的代码,那么是不是误删之后之前的exception.c就再也找不回了呢?这也有可能是企业的Git管理器中可能出现的事情,如果对于此情形没有一个好的解决方案,这对企业造成的经济损失是巨大的,Git当中是有解决方案的,其对应的命令就是“reset”恢复的方法。
第一步,执行git log命令,查看整个代码提交的历史:
git log
执行结果如下:
可以看见,log的执行结果中清清楚楚地记载着对远端Git的每一次操作的相关信息,而且每一次操作都对应着相应的版本号(即commint 后面那一大串数字与字母的组合号),这个版本号就成为了恢复远端Git仓库中代码的唯一途径了。
第二步,执行git reset --hard [version_id]命令
先找到之前被删除代码版本的版本号,可以发现,之前log执行结果中的第二条历史记录中的版本号就是本删除代码的版本号,执行下面命令:
git reset --hard 94031a48841
执行结果如下:
此时说明本地仓库已找到之前被误删的代码版本。
第三步,执行git push origin HEAD --force命令
git push origin HEAD --force
执行结果如下:
说明恢复成功,去远端的Git仓库看看恢复结果:
代码已经成功恢复!
后记:Git是面向企业和个人代码管理行之有效的手段之一,小型企业和个人也许不会使用代码版本控制器,这对于发生意外情况(如硬盘损坏、勒索病毒入侵)后,是一种极其不安全的做法。因此,为保障企业和个人代码的安全与管理,建议各位读者能熟练使用Git来管理自己和企业的代码。