代码改变世界

小菜的前端编程散谈(7)

2015-09-23 14:24  周信达  阅读(200)  评论(0编辑  收藏  举报

版本管理工具

既然是做编程,当然要写代码,可是写代码往往不是一个人的事。一方面很多大规模的项目工程单单靠一个人的力量是难以支撑的;另一方面,多人合作写代码也是软件开发界极其推崇的一种开源和分享的精神,做技术的要让自己适应技术社区文化。

既然是多人合作写代码做项目,代码管理是必不可少的。所以,这里讲工具有两层意思:第一就是源代码管理,每个人各自维护自己的代码,分工合作。第二就是版本管理,我们可以根据现实需求在项目的不同版本之间切换,同时维护多个版本。

说到版本管理工具,这些年来出现过不少的工具:VSS、CVS、TFS、SVN再到Git,我个人主要是使用TFS、SVN和Git。今天我不准备把每种都详细概览一遍(实际上我也没有非常的熟悉,只是应付日常场景)。我今天主要讲一下Git吧,在安装和配置的过程中踩过一些坑,这里把它记录下来:

  1. 下载Git,http://git-scm.com/download/
  2. 安装Git Bash,出现可选项打勾的,一般保持默认即可
  3. 安装完了之后,就可以使用Bash命令了,Windows下面可以右键打开Git Bash就打开了命令行,并且把目录定位到当前目录;OSX和Linux系统直接在Terminal命令行就可以使用Git命令了
  4. 配置Git帐号的名称和邮件,一般这都是作为一个用户的身份描述信息,配置方法就是:git config --global user.name "你的名字"邮箱就是:git config --global user.email "你的Email" ,提示,这个配置是放在.ssh同级目录下的.gitconfig文本文件里面了,不信你打开看一下
  5. 定位到.ssh目录下面,一般Windows是 系统盘符\用户\xxx.ssh\然后在当前目录打开Git Bash,OSX等系统直接命令行cd ~/.ssh就可以了
  6. 在Git Bash命令行中,创建密钥对,会生成私钥和公钥,公钥加密私钥解密。生成方式如下:ssh-keygen -t rsa -C "你的邮箱地址",Github官方教程推荐的是ssh-keygen -t rsa -b 4096 -C "你的邮箱地址",参数有一些不一样的地方
  7. 生成密钥之后,会出现提示要求输入密钥名称,随便取个名字就行了,比如这里取名为WinGitKey(如果这里不是这个名字,那么下面的WinGitKey全部都以这个名字为准) ,按回车,你的密钥对就生成了,查看当前目录下面是不是产生了两个文件? WinGitKey和WinGitKey.pub,一个是私钥文件一个是公钥文件
  8. 找一个托管站点吧,国外不用说当然是 github.com,但是天朝的特殊性,有时候我们可以使用国内的托管站点,比如git.oschina.net。注册一个帐号之后,把上一步我们生成的公钥xxx.pub文件里面的签名字符串添加到托管站点的公钥列表里面去
  9. 是不是急着连接站点了?别急,我们再配置一下全局的ssh通讯代理安全标识,这是Github官方推荐的做法:运行eval $(ssh-agent -s)回车然后再运行ssh-add ~/.ssh/WinGitKey,注意:正常情况下,这应该可以产生一个配置在.ssh目录下的config文件中,这样以后每次我们使用ssh连接不用重新验证身份了。windows下面有时候不会自动生成这个文件,感觉很奇怪,如果没有就手动创建一个吧,内容大概如下
    # github
    Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/WinGitKey
    # oschina
    Host git.oschina.net
    HostName git.oschina.net
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/git-osc
  10. OK,到了这一步就进入最刺激的一步了,很多人都卡在这一步挂掉,怎么做呢?就是测试与托管站点服务器的ssh通讯
    ssh -T git@xxxdomain.net注意我这里是随便一个托管站点名字,到时候你要填写真实的,回车之后,如果可能会提示一下yes/no,写yes然后回车就行。如果提示Welcome to XXX之类的字样,恭喜你。如果没有看到说明你悲剧了,本教程也帮不到你了

好了,Git配置的过程说完了。大部分都在配置ssh通讯细节了,这其实也是官方推荐的通讯方法,更加安全可靠。在我们正是进入代码写作之前,我们还需要学习一些Git代码操作的一些命令,关于Git,网上文章应该很多,推荐一篇 阮一峰:Git远程操作相机以及Git使用规范,要是觉得不好理解就先收藏下来,以后再仔细琢磨,反正我这里会简单讲解一下流程:

  1. 本地定位到你的代码工作目录,如果没有你可以建立一个文件夹,比如Git,进到目录之后,打开Git Bash定位在这个目录下面
  2. 找到你要参与的项目,点击项目的ssh地址(假设是 xxx.git),然后我们在Bash命令行中输入 git clone xxx.git
  3. OK,git clone其实是讲远程的整个项目的镜像全部拷贝到本地,全部是什么意思呢?就是包括所有的分支
  4. 假设项目名叫xxx,那么Git目录下面会生成一个xxx的文件夹,进入xxx文件夹,然后重新打开bash命令行,这时你可以从命令行看到自己当前自己是在哪个分支,如果你没切过分支,一般默认就是master。
  5. OK,我现在是在dev分支上开发的,于是你要切换到dev分支,那么使用命令 git checkout dev回车,你就切到了dev分支了。
  6. 好了,切到dev分支上开发,可以开始写代码了,等一下,也许上次clone到现在已经好几天了,也许服务器上的代码有更新呢?好,运行一个命令:git pull,默认会把当前分支(dev)在服务器上的最新代码下载到本地,OK,可以愉快的编码了
  7. 插一步,任何时候你都可以运行git status,查看本地工作区的文件的情况,哪些是新增的,哪些是更改的
  8. 写完代码,感觉可以提交了。提交分两步,第一步是提交到本地 git commit -a -m "备注信息,改了哪哪哪",-a表示全部,如果不用-a就要制定具体的文件名,-m后面是指定注释信息,让别人看得懂。注意,一般提前使用git status查看一下状态,如果有新增的文件那就在commit之前先使用git add xxx(xxx是你新增的那个文件)或者git add .(一个点表示当前整个目录),这样表示把新增的文件添加到暂存区里面,然后再执行commit命令
  9. commit之后,代码只是提交在你本地仓库里面,如果你要传到网上,还要push一下,默认直接使用git push就行了。

OK,Git代码管理的命令先就说这么多了,这些命令可以应付日常的常规流程了,暂时先这样吧,我们项目合作的时候我再慢慢告诉你。

补充一句,Windows下面,使用TortoiseGit工具作为Git可视化客户端工具还是很方便的,特别是查看log和比较差异,值得学习使用