Git

在项目版本控制管理(SCM,Software Configuration Management)中,CVS和SVN算比较老牌了,现今又多了git。git是linus为Linux内核开发的版本控制工具,它与CVS,SVN等不同,采用分布式版本库的方式,不必服务器端软件支持。
git目前windows下也有几种实现,可以到git项目网站上去下载,我用的是msysgit版,下载安装,其中git bash是类unix shell,git gui顾名思义是win下的图形界面。
这里简单说说git bash下建立本地代码仓库和github的使用。
首先设置自己的全局身份标识,好知道这是谁的。也可以对单个库设置,当然就不需要全局了。

git config --global user.name "YourName"
git config --global user.email YourEmail

创建项目文件夹并切换目录

mkdir git-repository
cd git-repository

初始化库,并创建一个readme文件,添加到git索引中

git init
touch README
git add README

touch 是linux命令,文件存在则改变文件时间记录到当前,不存在则创建该文件。git add仅是把文件提交到git的索引中,便于以后上传,添加当前文件夹下所有文件则以点号表示"git add ."。

git commit -m "first commit"

则为上传到库并附带提交说明。如果做了些修改,可用下面这句直接提交修改全部修改

git commit -a -m "update commit“

现在我想给项目添加新的功能,但又不想改变已有的项目功能,可以创建分支branch。

git branch new_feature
git branch
git checkout new_feature
touch new
git add new
git commit -m 'add new feature'

git branch 分支名,是创建相应的branch,单git branch为显示所有分支,checkout用于branch间的切换。
如果觉得该分支ok了,可以合并到主分支master里, 用merge来实现合并。

git checkout master
git merge new_feature

切换到master,然后合并需要的branch到主分支。
还有一些git ls-tree、git status等一些有用的命令以后会介绍,也可自行阅读相关资料

github是一个项目托管的服务平台,免费用户只能创建公共项目, 任何人都可以看到,有300M的空间。
使用github首先注册用户,建立项目,然后与本地git库建立ssh通信,需要先生成ssh key,在bash里输入

ssh-keygen -C 'yourmail' -t rsa

如果不设密码,一路回车就ok了,把生成id_rsa.pub里的公共密钥复制到github上,放account里是全部项目通信,对单个项目放到Deploy Keys。
再在git bash里添加远程服务器,把本地代码推送到服务器上就共享了。

git remote add origin git@github.com:yourid/github-repo.git
git push origin master

github的一个好处是上面有许多项目,你可以找到自己感兴趣的项目fork成分支到自己的库然后对其添加新的feature,待修改后pull request给原项目,如果对方觉得不错就会合并进主分支,你也就对该项目做了贡献。如果这样团队开发也比较灵活。

参考及延伸阅读:
github Guides
Git使用指南
git魔法
Git中文教程
The Git Community Book

posted @ 2013-02-06 23:47  pandoi  阅读(321)  评论(0编辑  收藏  举报