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