美文网首页Git简单应用
从无版本控制的史前时代到Git

从无版本控制的史前时代到Git

作者: lavender21 | 来源:发表于2016-12-16 11:30 被阅读15次

无版本控制的史前时代

在学校,我大部分情况是自己一个人写点东西,不需要与别人合作,每次都是写到哪里下次打开电脑继续写。但这样会有一些问题,突然有一天我的电脑出故障了如果没有及时备份就悲剧了。对之前的工作做了一些修改发现还不如以前,想改回去,又悲剧了,遇到这种情况只能提前备份了。那个时候我不知道版本控制为何物。处在无版本控制的史前时代。

集中式版本控制系统svn

我最早接触的版本控制系统是svn,是在学校的软件开发课上老师介绍的。对于还不知道版本控制系统为何物的我乍一听,这个工具好啊,大家以后就可以在各自的电脑上开发,环境一致,及时更新合并,不会相互影响,也省去了合并代码的种种问题。所以我从无版本控制系统的史前时代来到了集中式版本控制系统时代。
刚开始使用svn我觉得很方便,可渐渐地就遇到一些问题,代码文件十分大,下载代码真的是用了好久。关键是有一次我犯了大错,修改完代码后忘记更新最新代码便提交了,在此同时刚好别人也更新同一文件。然后悲剧就发生了,我提交上去的代码在服务器上冲突了。这一冲突,所有人更新下来的代码都是服务器上那个冲突版本,影响了别人的工作。可如何解决呢,这时就得一个人先在本地把冲突解决掉,而且这期间不能有人再提交修改这一文件。然后将解决冲突后的文件提交到服务器上。这时大家更新才得以继续正常工作。还好后果不是很严重。对于这种问题就是要养成提交之前先更新的好习惯去避免它。但也难免有时会手抖点错...

分布式版本控制系统Git

后来,去公司实习,我邂逅了Git。怎么说Git呢,刚开始使用,只是觉得和svn并没有太多区别,都是一样的更新提交。只是Git用命令行感觉效率更高一些。后来相处时间长了,才渐渐发现它的好。
说到学习Git,我强力推荐廖雪峰老师的Git教程。可谓深入浅出,对于初学者简单易懂。戳这里>>>

  • 网络环境要求低
    首先在本地对Git进行操作很方便,不用联网就可以,只有在pull,push的时候需要网络。
  • 冲突解决更智能
    其次,对于代码冲突的情况。并不会影响到别人,首先当你提交一段代码或者合并分支的时候,如果发生冲突是提交不上去的,它会在本地产生冲突,然后当你解决后再把它add, commit将解决冲突后的代码提交上去,在这期间别人仍旧可以照常工作。
  • 随时撤销很方便
    有一次,我们需要和另一个开发团队合并代码,虽然是两个不同的项目,但其中有一些共用部分。所以将部分项目文件进行了合并,合并完成后并不是期待的结果,由于项目一中一些文件影响了项目二,我们试图将部分文件恢复到合并前,但不影响其他文件的合并结果。这时git checkout -- file就大显身手了,并不需要回退整个操作,只需要回退部分文件即可。
  • 版本回退时光机
    其实即使提交了代码依然可以回退,并且不只是回退到上一个版本,git log查看日志,只需知道id号,就可以回退到任意你想回退的版本。git reset --hard "commit id"这样,再遇到以前那样改了之后又想改回去就不用打动干戈了,一行命令就搞定了。
  • 随机应变能力强
    某天我正在完成任务一,这时测试提了一个紧急bug需要先改。但我的任务一尚未写完还不能add并提交。但又要将现场保护起来。这种情况一个命令就可以解决了git stash 将现场暂时储藏,原理就是押入栈中。接着创建一个新分支解决bug,完事之后使用命令git stash pop恢复现场,继续工作。就是这么方便。
    更重要的是,因为Git有GitHub这样一个网站,托管了太多开源项目,让我们可以很方便的学习别人的源码。

未来不知道随着coding monkeys的需求会不会有更强大的版本控制系统?但至少现在Git是最强大的版本控制工具,没有之一。

相关文章

  • 从无版本控制的史前时代到Git

    无版本控制的史前时代 在学校,我大部分情况是自己一个人写点东西,不需要与别人合作,每次都是写到哪里下次打开电脑继续...

  • Git那些事

    Github从无知到运用 1.基本认识git、github Git是一个开源的分布式版本控制系统,用以有效、高速的...

  • 《Git权威指南》-第1章:版本控制的前世和今生

    《Git权威指南》个人读书笔记,仅做学习记录之用 第1章:版本控制的前世和今生 [TOC] 1.1 黑暗的史前时代...

  • .gitignore详解

    在使用git作版本控制时,git会默认把git控制的文件夹里面的所有文件都加入到版本控制。但是在实践中,我们经常会...

  • 学习笔记-01

    原视频 版本控制介绍 集中式版本控制 问题:单点故障 分布式版本控制 Git安装 video Git结构 Git和...

  • 关于在项目中使用git的工具选择

    作为版本控制的新秀,git已经成为主流的代码版本控制系统。git不同与svn、cvs等集中版本控制系统。git作为...

  • 01、版本管理-GIT

    一、版本控制 二、版本控制软件 GIT 分布式版本控制系统 SVN 集中式版本控制系统 三、git安装 四、win...

  • 01、版本管理-GIT

    一、版本控制 二、版本控制软件 GIT 分布式版本控制系统 SVN 集中式版本控制系统 三、git安装 四、win...

  • 2018-09-30 Day31 - 学习Git

    Git是一个版本控制工具 -- 分布式的版本控制系统Mercury - python开发的版本控制软件 Git操作...

  • git的及基本使用

    git 版本控制系统(VCS) 本地式版本控制系统 集中式版本控制系统 SVN 分布式版本控制系统 Git g...

网友评论

  • 25cc8899cea4:了解一下git pull和git rebase的区别
    lavender21:@YYLFC 恩,之前没有用过git rebase.一直用的git pull 和git merge.上次去上课主持人还提问了这个。

本文标题:从无版本控制的史前时代到Git

本文链接:https://www.haomeiwen.com/subject/czogmttx.html