Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2470319
  • 博文数量: 293
  • 博客积分: 2660
  • 博客等级: 少校
  • 技术积分: 3632
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-03 17:50
文章分类

全部博文(293)

文章存档

2015年(13)

2014年(58)

2013年(73)

2012年(25)

2011年(30)

2010年(86)

2009年(8)

分类: 项目管理

2014-06-08 15:59:53

a.Ubuntu中Git服务器搭建
http://blog.csdn.net/ice520301/article/details/6142503
b.Windows安装Git客户端工具
http://blog.csdn.net/csfreebird/article/details/8011783
c.gitosis和tortoisegit配置证书的问题
http://blog.sina.com.cn/s/blog_591e8adf0100w4vm.html
  配置gitosis和tortoisegit,使用tortoisegit的puttygen工具生成个人证书连接gitosis管理的git。
gitosis管理git虽然原理也是通过ssh连接git服务器的,但是它管理的用户并不需要在服务器上存在实际的linux用户,客户端通过git用户和个人私钥访问git服务器。
这样的好处有2点:
1.只有拥有个人私钥的用户才能访问git。
2.git用户的密码也不需要透露给客户端用户。
客户端生成个人的公钥通过gitosis-admin上传到gitosis中后,gitosis会做自动一个公钥转发
可以查看/home/git/.ssh/authorized_keys文件,该文件中保存了每个用户的公钥信息。
本地通过tortoisegit连接git服务器的时候选择puttygen生成的个人私钥连接就可以了。
clone的时候经常会出现ERROR:gitosis.serve.main:Repository read access denied这个错误,网上多是说因为密钥文件名一致的问题,但是我的环境是因为以下2个原因:
1.生成的公钥文件,上传到gitosis-admin之前应该做一个转换,因为这个公钥是在windows下做的,linux不能正确识别。
转换方法: 在linux下
 ssh-keygen -if windows的公钥文件 > 新的linux的公钥文件。
2.clone的路径的问题:之前clone的时候一般带上全路径,比如git clone git@server:/home/git/repositories/projectname
  现在不需要带全路径 git clone git@server:projectname 即可。
d.Git fetch和git pull的区别
   http://blog.csdn.net/hudashi/article/details/7664457
  
Git中从远程的分支获取最新的版本到本地有这样2个命令:
1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge
	
	

     git fetch origin master git log -p master..origin/master git merge origin/master

    以上命令的含义:
   首先从远程的origin的master主分支下载最新的版本到origin/master分支上
   然后比较本地的master分支和origin/master分支的差别
   最后进行合并
   上述过程其实可以用以下更清晰的方式来进行:
	
	

git fetch origin master:tmp git diff tmp  git merge tmp

    从远程获取最新的版本到本地的test分支上
   之后再进行比较合并
2. git pull:相当于是从远程获取最新版本并merge到本地
	
	

git pull origin master

上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并
阅读(1235) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~