Git试用

 

Git试用

kuuyee  |  2011-03-03  |  Git   GitHub  

Hudson终于摆脱了Oracle,现在更名为Jenkins,并使用GitHub托管所有代码.之前一直用Subversion作为版本管理,今天就拿Jenkins项目试用一下Git这个分布式的版本管理工具

安装Git

我的OS是XP,在Windows环境下的Git客户端软件是msysgit,下载默认安装即可.你也可以选择图形化的客户端,下面列出比较好用的三个:

注册GitHub账户

GitHub是一个托管Git项目的网站,免费版提供300G空间,但是项目必须是开源的,如果是闭源要收费的.

进入免费用户注册页面,如下图:

kuuyee blog

完成用户注册后,需要在你的本机上生成密钥对,这样项目可以push到 GitHub上.

进入msysgit的安装目录,命令如下:

#cd bin 
#bash

这时进入Git提供的Bash界面,然后执行下面的命令生成密钥对

bash-3.1$ssh-keygen -t rsa -C "gz007@gmail.com"

上面输入的邮件必须和你注册GitHub时用的是同一个,这时页面提示输入生成公钥的文件名,这里最好直接输入一个不带文件夹路径的名字,我就直接输入 id_rsa ,然后一路回车,完成时会在msysgit的bin目录生成 id_rsa,id_rsa.pub 两个文件.

 用户根路径 Windows环境的Git在寻找用户根目录时首先找msysgit的安装目录,所以在执行SSH命令时会在msysgit下查找.ssh目录

所以我手工在msysgit下创建了.ssh,然后把生成的两个公钥文件复制到.ssh目录中.最后的目录结构如下图:

kuuyee blog

接下来需要在GitHub上创建一个SSH公钥,首先进入账户管理页面,点击SSH公钥,点击"添加新的公钥",输入一个代表你机器的名称,因为有可能创建多个公钥对应你的多台开发机器.最后把id_rsa.pub里的内容复制到下方的输入框中.如下图:

kuuyee blog

进入主页.然后点击新建仓库,如下图所示

kuuyee blog

现在可以测试新建的Git库了,进入msysgit的bin目录下,执行下列命令:

bash 
bash-3.1$ssh git@github.com

如果配置都正确的话会返回下面的信息

Hi gz007! You've successfully authenticated, but GitHub does not provide shell access. 
Connection to github.com closed.

如果提示链接错误,大部分原因都是没有找到.ssh目录

Git实战

配置git的全局变量

$git config --global user.name "gz007" 
$git config --global user.email "gz007@gmail.com"

创建本地Git项目

$mkdir new-project 
$cd new-project
$git init //初始化一个新库new-project,这时会在目录中生成一个new-project.git的文件

新建一个文件命名为README.txt.然后加入到库中

$git add README.txt 
$git commit -m 'init commit' //提交README.txt文件

为远程的github服务器创建个别名,叫origin

$git remote add origin git@github.com:gz007/new-project.git

把本地库合并到远程库,本地为默认分支master

$git push origin master

如果一切顺利,那么就可以在github上的new-project项目源码中看到README.txt了. Git编辑更新,手工编辑README.txt,然后保存

$git commit -a

合并更新到远程github上

$git push origin master

使用Git分支

$git branch //查看当前分支状态,目前只有master一个默认分支 
$git branch topic-feature //创建topic-feature分支
$git checkout topic-feature //切换到topic-feature分支

在topic-feature分支下创建新的项目文件config.ini,并提交

$git add config.ini 
$git commit -a -m 'add new config file to new branch'

合并到github远程库中

$git push origin topic-feature

现在github的new-project项目中存在两个分支,master和topic-feature 假设topic-feature分支基本稳定了,就可以合并到master主分支里

$git checkout master //切换到master分支 
$git merge topic-feature //合并topic-feature分支到master分支
$git push //把合并后的master分支更新至远程github库

现在可以在远程github库的master分支下看到config.ini文件了

小结

Git的模式与Subversion还是有很大不同的,Git主张你随意的创建分支,并可以随时把分支合并到主线分支中.这比较适用于产品有过多的版本维护.

GitHub还是非常好用的,就是需要配置好公钥,如果你是Linux系统,就不会像在Windows下遇到这样那样的问题,毕竟Git是由Linux发展而来的.

一句话!Git是好东西,如果你是Linux爱好者,赶快试用下Git吧!

2011-03-03

 

posted on 2011-03-03 13:22 kuuyee 阅读(1955) 评论(0)  编辑  收藏 所属分类: LinuxGit/Maven系统管理


只有注册用户登录后才能发表评论。


网站导航:
 

导航

<2011年3月>
272812345
6789101112
13141516171819
20212223242526
272829303112
3456789

统计

随笔分类(139)

Linux内核

搜索

积分与排名

最新评论

阅读排行榜