设为首页 收藏本站
查看: 1429|回复: 0

[经验分享] 玩转git,让git成为个人工作备份利器(即使是电脑小白也推荐学习)

[复制链接]

尚未签到

发表于 2018-1-14 15:54:01 | 显示全部楼层 |阅读模式
前言
  不要把这篇文章当做给编程人员的技术文章,即使你对编程一无所知,按照这篇文章的指引一步步学习,仔细模仿,也可以很容易地学会如何去做。更重要的是,这篇文章将让你介绍如何让git成为你的工作日志,成为你的备份工具,成为你的项目管理软件。没错,git让这一切变得如此简单。
背景
  OK,什么是git? Wikipedia(http://en.wikipedia.org/wiki/Git_(software))告诉我们:“Git (/ɡɪt/) is a distributed revision control system with an emphasis on speed.“ 这是一个分布式版本控制系统。听起来似乎很霸气,那么它是谁开发的呢?这个名字就更霸气了, Linus Torvalds——Linux之父。
  什么叫版本控制系统呢?
  我们来举个例子。比如说,你要写个商业策划书,经过几天熬夜,总算在2012-01-01写了一个初稿 proposal.doc。又经过两天的奋战,你对之前的文档做了更深入的细化,于是把之前的文件改名成了 proposal-2012-01-01.doc 作为备份。后来经过你和老板的激烈讨论,并对文档反复修改,终于在2012-01-09把第7版交给了老板,算是完成了这份工作。回头看看当前的工作文件夹,呵,充满了名为 proposal-2012-01-01.doc,proposal-2012-01-03.doc。。。proposal-2012-01-09.doc 的文件。你不舍得删了它们,顺手打个包压缩下扔进了自己的归档文件夹里,也许永远都不会看它们了;即使半年后想要来参考一下,你也顶多是看看最新版的文件,那些历史版本文件之间的关系恐怕永远也记不起来了。
  这是个很普遍的例子,任何用电脑写过报告的人都会有这种经历。保存某个修改的文件时我们习惯于给较早的版本加个日期(或者其他你感兴趣的方式)做为备份,生怕自己对稍后的某个修改不满意好恢复回去;如果有强迫症,估计你恨不得写一行备份一次——如果你学会了git,恐怕这种强迫症会更加强烈,因为用起来实在是太爽了。这就是一个非常朴素的版本控制系统,你人为的给某个文件加上时间的标记,把编辑的某些里程碑保存下来,方便自己将来查阅、备份、恢复。
  既然我们有这么普遍而强烈的需求,版本控制系统软件自然备受关注,并不断更新升级。从 CVS 到 SVN 再到 GIT,版本控制系统的管理模式从集中向分布演变。git的分布式特点就在于,虽然我们可以有一个最核心的中央服务器来管理所有的文件,你可以在本地生成一个局部的版本控制系统,你的版本历史都可以先在本地保存,直到获得一个满意的版本后,再提交到服务器中。对于个人来说,甚至完全不用理会中央服务器是否存在,自己玩单机版的版本控制就足够了——本文的目的也就在于教会你怎样玩转单机版git。
准备
  工欲善其事,必先利其器。我们需要的软件很少,只有两个,TortoiseGit(http://code.google.com/p/tortoisegit/downloads/list)和msysgit(http://code.google.com/p/msysgit/downloads/list),前者是与 windows 的资源管理器(linux和mac用户借过一下)整合的git管理软件,后者是git的功能软件。
  安装好TortoiseGit之后,重启电脑,鼠标右键里就会有这几个新的程序,git的相关功能都可以从这里访问到,连开始菜单都不要,是不是很方便?

  (svn是另一个软件,请无视)
  请选择setting,我们需要配置一下git的路径。

  在红框里,我们要设置一下 git 的路径,就是你安装 msysgit的bin文件夹,比如说我的是 F:\software\develop\svn\git\PortableGit-1.7.8-preview20111206\bin,里面会有 git.exe 这个程序。
  如此,我们的环境就配置好了,是不是非常简单?
实战
基础知识
  接下来,我们要具体看看git如何成为我们备份的利刃。
  先随便创建一个空白文件夹,作为我们实践的平台。
  进入这个文件夹,鼠标右键选择 “ Git Create repository here...",弹出的对话框不用管,那个复选框不要选,ok即可。这个文件夹里就会出现一个隐藏的 .git 文件夹。如何显示隐藏文件夹?这个请放狗去搜吧。
  ok,一个版本库我们就创建出来了。走到上级目录,你也许会看到,文件加上出现了一个绿色的对勾符号,表示这个文件夹已经受到了版本的控制。(这个图标的出现不一定实时,也许你要多刷新几次,甚至重启电脑才行)

  常见的图标有
这个文件(夹)很干净,是最新版本文件

这个文件(夹)发生了修改,需要提交

这个文件(夹)要添加进版本库

这个文件(夹)没有在版本库中,需要添加进来(转为上一个图标的状态),或者忽略(转为下一个图标的状态)

这个文件(夹)被忽略,不受版本控制

这个文件(夹)里的内容发生冲突(这是最危险的情况,但是对于个人用户来说,几乎不会出现,出现的情况是两个人同时对一个文件做修改,后提交的人在更新时无法与前者完美融合时,这个不需要深入理解)

  通过这么直观的图标暂时,你就能对自己的工作文件夹了如指掌,那些文件做了修改,当前工作是否需要提交,都一目了然。
版本分支
  在进行更进一步操作时,有必要了解一下版本分支(Branch)的概念。版本分支意味着,你从当前的项目中弄出来一个拷贝,按照自己的想法胡乱修改,你之后的所有版本历史都保存在这个分支里。如果你对这个分支很满意,就可以把这个分支合并到原来的主分支里(Merge),甚至直接让这个分支作为主分支;或者你感觉到越改越糟糕,就直接回到主分支工作,仿佛什么也没有发生一样(当然这个新的分支要通过某些复杂的操作来删除,你也可以留着,作为自己惨痛教训的警钟)。也就是说,分支为你提供了一个尝试某些新道路的空间。
  作为个人用户来说,有一个主分支和一个工作分支就够了。主分支作为基准一直不变,工作都在工作分支上进行,这样主分支与工作分支之间的变化就记录了你的所有工作历史。
  我们来具体实践一下。
  首先,git有个不太人性化的“bug“,不能够添加空白文件夹,因此我们需要先添加一个空白文件,比如 test.txt,然后在文件夹上右键选择 “Git commit"

  选择添加的那个文件,写点message(git每次提交必须写上一些文字说明这次更新的内容,从而让你知道每个版本有什么变化)提交即可

  在刚才的工作文件加上右键,选择 “Create Branch“

  随便取名比如 develop,确定即可。
  依然右键选择 “Show log“,出现如下对话框

  可以看到,我们已经有了一个版本历史,它详细记录了我们的改变。上面有两个颜色标签,红色的master和绿色的develop,这个代表了我们的分支。master是我们第一次提交时系统自动生成的分支;develop是我们手动创建的。红色的代表当前的工作分支,绿色的代表存在的历史分支。我们需要把工作分支切换到 develop。
  在文件夹上右键选择 “Switch/Checkout", Branch里选择develop,再查看历史,我们就会发现,develop变成了红色。
开始工作
  接下来我们就可以随心所欲的工作了。编辑一下test.txt,新建文件夹,添加word,excel文件,总之,随便工作。你会看到,修改的文件加了红色的叹号,新加为被版本控制的文件加了蓝色的问号,对于蓝色问号,你可以选择右键里的 “Add“让它变成蓝色的加号(或者有时会一步到位变成绿色的对勾,这个不重要),或者不管他。
  然后在根文件上,选择 Commit,再来看看历史,就会发现你的工作记录了
  Commit时会有一个让你输入用户名的问题,这个完全不重要,你随便写个用户名和邮箱即可.

  可以发现,develop进步了一个版本,master还停留在原处。历史显示,test.txt被修改,一个word和excel被添加;文件夹信息不回被记录。
  双击下面的test.txt文件,它甚至会给你展示出这个文件发生了哪些变化。甚至连 excel 和 word 的变化也会给你选择合适的方式进行比较。



  令人震惊吧!没错,git会完全忠实的记录的一点一滴,只要你commit,系统就会为你保存下来一个历史记录(不必担心空间,它会采用很先进的方式进行增量保存,远比你每次都复制要节省空间得多)
结束语
  差不多已经把如何用git来进行工作的方法介绍完了,还有一个非常重要的功能没有说,怎么样恢复历史版本的文件呢?很简单,在想要恢复的文件上查看历史,选择revert即可!

  即使你完全不懂编程,相信上面的讲解也可以教会你怎么样来使用了吧。赶紧来试试吧!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-435043-1-1.html 上篇帖子: Windows下配置Git服务器和客户端 下篇帖子: 我的GIT工作流程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表