给SVN泼盆冷水,是时候用GIT了

作者: Terry_Wang | 来源:发表于2013-12-31 20:27 被阅读3955次
    gitgit

    前言

    没有要排除任何工具的意思,只是眼下最流行的“版本管理系统”非GIT莫属。

    写给新手

    有些朋友可能会说我还没有使用过GIT,好吧,我不说你OUT了,只是在开始之前你应该简单了解下GIT。这里有个图文生动的好地方,有兴趣不妨来看一看----git - 简易指南

    Git有什么不一样

    如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征。

    • SVN属于中心式的仓库管理,统一维护在Server端,而Git属于分布式的仓库管理,每个开发者都拥有自己的本地仓库,并且每个仓库都是平等的。
    • 由于你自己本身就拥有仓库,那么Git在本地磁盘上就保存着所有有关当前项目的历史更新,并且Git中的绝大多数操作都只需要访问本地文件和资源,不用连网,所以处理起来速度飞快。用SVN的话,没有网络或者断开VPN你就无法做任何事情。但用Git的话,就算你在飞机或者火车上,都可以非常愉快地频繁提交更新,等到了有网络的时候再上传到远程的镜像仓库。换作其他版本控制系统,这么做几乎不可能,抑或是非常麻烦。
    • 并且Git中每个克隆(clone)的版本库都是平等的。你可以从任何一个版本库的克隆来创建属于你自己的版本库,同时你的版本库也可以作为源提供给他人,只要你愿意。
    • Svn?Svn是统一管理的好吧。开发时你的Boss说了算,说什么时候提交代码就什么时候提交代码,说什么时候更新就统一更新,你觉得很爽?
    • Git?Git的提交不会被打断,直到你的工作完全满意了,PUSH给他人或者他人PULL你的版本库,合并会发生在PULL和PUSH过程中,不能自动解决的冲突会提示您手工完成。

    现在你知道有什么样的区别了把,奥斯托洛夫斯基曾经说过:“统一是扼杀创造力的根源”!(好吧,我杜撰的...)难怪这么多开源社区(比如OSC@China)都采用了Git,而不是... ...

    我最讨厌SVN的两个地方

    如果在公司规定就使用SVN(多数不是规定,而是确实不了解Git)那么我就很反感一下两点:

    1. SVN有点考验手速,谁提交的快就不需要解决冲突。这个有点烦人,大家明明在同一个Team中,有了冲突应该协调去解决,而不是最后那个“手速”慢的同学去独自跟冲突干上一仗。
    2. SVN对于文件更改记录的管理。每个文件夹下都有那么一个.svn的文件夹确实很不爽,你去管理你的东西,干嘛在我的开发环境下放上你的东西,不爽!

    Git的GUI工具

    不得不说的是很多朋友都有GUI偏好,或者说一个好的工具怎能没有一个好的“脸”呢?!好吧,这是Windows习惯的驱使,我只能说非所有程序猿都愿意使用命令行工具,尤其是被Windows惯坏了的那批。不得不说的是Git有自己的GUI界面,因此完全不需要其他的GUI工具。不过话又说回来,工具都有个习惯问题。基本上从SVN转换过来的程序猿,绝大多数都只用过TortoisSVN,好吧那你还用TortoisGit吧。

    不过你可能不明白的是TortoiseGit没有集成Git,那么还需要去下载msysGit(或者Git for windows)来安装。因为TortoiseGit其实只是一个壳(其实和Svn一样),它需要调用Git命令行才能发挥作用。(现在你知道我为什么推荐你用命令行了么?)

    TortoiseGit安装好是这个样子的:


    tortoiseGittortoiseGit

    还有就是另外一个GUI工具叫做SourceTree,个人感觉还是非常不错的,界面如下:


    在此输入图片描述在此输入图片描述

    Git for windows 和 msysGit

    这个你大致了解下就行,只是多一种选择,多一条路。msysGit的主页提供了两个项目:Git for Windows和msysGit,并写明了它们的详细区别。
    个人认为,Git for Windows适合绝大多数程序猿(又见绝大多数),所以,强烈建议安装Git for Window。
    msysGit使用一种很BT也很NB的方式来安装。先安装一个最小的MinGW/MSYS系统,然后使用git pull 所有的源码,调用gcc在本地编译成可执行文件。

    啰啰嗦嗦说了这么多,可能没有给大家在实际开发中帮上什么忙,Git的使用过程还需要大家自己去摸索。

    相关文章

      网友评论

      • Terry_Wang:2014 年调侃了下 SVN。 现在来看,有些地方是偏激的,表达方式的偏激。但是 Git 带来的东西,尤其是工作、协作方式的变更,是可以极大地提高团队的生产力的。
      • 3674d0183b56:说的不错
      • Road:git现在是主流,而且工作方式也符合程序员
      • b4e46bbd7e5a:同样喜欢git,现在不管是多人,还是单人,动手之前先git init一下

      本文标题:给SVN泼盆冷水,是时候用GIT了

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