2009年10月5日星期一

基于Git版本管理系统的简单教程

Git可能有的程序员或者系统管理者还不知道,但是在开源界他可是个超男,火爆的很。他是linux他爸Linus Torvals为了更好的维护linux源代码搞的,他能搞出linux那么牛B的东西,Git肯定也不再话下, Git主要是分布式版本管理系统,速度贼快,与Subversion和CVS不同,他不需要一台中央服务器,各个repository节点对其clone的那个节点负责,有点p2p的性质,因为肯定有个repository节点是所有其他子孙节点的祖宗,所以最终各节点所管理的内容都能够同步到祖先节点,中间的开发维护过程你就可以在断网、移动开发等任何情况下进行,当你决定合并的话只需push就可以了,老纪以前使用过CVS和Subversion,觉得Git比他们多出的内容就是多了两个命令push和pull,pull是从你的父节点把其更新的内容弄下来,push是你把你更新的内容提交上去。


老纪因为有两个项目要维护,但是一会在家办公一会在公司办公,数据同步是个问题,既然买了Linode VPS就不能让他闲着浪费,也正好试试Git怎么样,安装了Git后参考了一下Git的手册总结出一个使用ssh的Git简单教程,这样既不用开放其他端口也达成了同步项目的目录,自己感觉还是比较满意的。多说无益,现在就动上手:

1.服务器端Git设置


aptitude install git-core
#到你工作目录建立项目目录
cd ~
mkdir project.git && cd project.git
#初始化只有.git内容的repository
git init --bare
#至此你服务器上的设置已经完成


2.客户端操作

Git的window客户端?Git没有什么客户端之说,不过如果你想做一个供老多老多人共同使用的仓储库的话他就有,不过目前我还没接触呢,现在我这个配置够几个人用了。到http://code.google.com/p/msysgit/downloads/list下载windows能用的Git并安装,它包括了一个小的linux/unix环境,足够维护你的项目使用,安装后可以直接运行桌面上的Git bash,如果你有点linux基础或者命令行的基础就什么都不怕。


#在你已有的项目目录初始化本地Git仓储库,比如d盘的project目录
cd /d/project
git init
#与远程库,就是我在linux上建的那个,看到了,我用的是ssh链接,安全有了保证
#poject 是我在本地库为远程库建的一个标识,user是我在linux上维护项目的用户名
git remote add project ssh://[email protected]/home/user/project.git
#给你自己起个名
git config --global user.name "zhangsan"
git config --global user.email "[email protected]"
#现在配置完成了,开始把你的项目提交到远程库了
#首先把要维护的文件添加上
git add .
#提交内容,提交后的内容还在本地库,这就是和cvs和subversion不同的地方,也是git实现分布式的关键
#只有你才能决定什么时候把内容提交到远程库
git commit -m "....."
#现在你决定要把本地修改的内容合并到远程库了
git push
#在另外一端,比如家里,克隆下载远程库
git clone ssh://[email protected]/home/user/project.git
cd poject
#配置下设置
git remote add project ssh://[email protected]/home/user/project.git
#给你自己起个名
git config --global user.name "zhangsan"
git config --global user.email "[email protected]"
#那么你就可以随便玩了,要记住在每次push之前先pull下,更新一下本地内容
git pull


好了,Git基本教程(最好一个人在不同地方使用)就完成了。

没有评论:

发表评论