设为首页 收藏本站
查看: 1074|回复: 0

[经验分享] GIT 使用小结

[复制链接]

尚未签到

发表于 2018-1-14 20:34:41 | 显示全部楼层 |阅读模式
  接触的第一个版本控制软件是SVN,简单易学,容易上手。后来,Leader觉得Git更先进,就要求迁移到Git上来,俗话说,“不想学新技术的QA不是一个好RD“,虽然一百个不情愿,也只能硬着头皮学习,搞定。
  这过程中,让我深刻感觉到版本控制重要性的是一件事,准备把SVN迁移到GIT的过程中,SVN Server被挪作他用,数据都丢失了,而”天阴偏逢屋漏雨“,在所有Automation Client上面的Test Sample都被Lab里面的AV产品删除了,哭笑不得。废话不多说了,进入正题。
  第一部分: Git Server 配置
  在可以使用apt-get 、yum的情况下安装配置Git ,GitWeb还是相对简单的,请参见,这里就不多说了。
  因为测试环境都在Lab里面,不能够连接外网,这里讲的是从源码安装的过程:
  OS选择的是RHEL5.1,直接从github中下载git源码,直接点击那个ZIP图标就能够下载下来一个Zip包:
  编译并安装:
  

unzip git-git-v1.7.11.3-287-ge771946.zip  

cd git-git-e771946  

make prefix=/usr/local all  

make prefix=/usr/local install  

  检查:
  

git --version  
git version 1.7.9.5
  

  说明安装成功!
  创建一个名为'git'的用户,并为其创建一个.ssh目录用来存放SSH公钥:
  

adduser -m git  

su git  
cd
~  
mkdir .ssh
  
mkdir repos
  
chown git:git repos
  

  创建一个裸仓库:
  

cd repos  
mkidr autokit.git
  
cd autokit.git
  
git
--bare init  

  限制git用户的活动范围:
  

vim  /etc/passwd  

  将
  

git:x:1000:1000::/home/git:/bin/sh  

  改为:
  

git:x:1000:1000::/home/git:/usr/bin/git-shell  

  现在git用户只能用SSH来推送或获取Git仓库,而不能直接使用主机shell。
  搭建GitWeb,切换到git源码目录,生成定制的CGI脚本
  

cd git-git-e771946  

make clean  

make GITWEB_PROJECTROOT="/home/git/repos " \  

       bindir=/usr/local/bin gitweb  

  GITWEB_PROJECTROOT为要查看的git仓库目录,bindir为git目录
  将生成的gitweb目录copy到/var/www目录下
  

cp -Rf gitweb  /var/www  

  RHEL中apache是默认安装的饿,设置apache以CGI方式运行该脚本,在/etc/httpd/conf/httpd.conf中添加一个VirtualHost配置:
  

<VirtualHost *:80>  
ServerName gitserver
  
DocumentRoot
/var/www/gitweb  

<Directory /var/www/gitweb>  
Options ExecCGI  FollowSymLinks  SymLinksIfOwnerMatch
  
AllowOverride All
  
order allow,deny
  
Allow from all
  
AddHandler cgi
-script cgi  
DirectoryIndex gitweb.cgi
  

</Directory>  
</VirtualHost>
  

  启动apache:
  

/etc/init.d/httpd start  

  因为我们已经在repos中创建一个仓库,如果出现如下截图:

  尝试下,设置下仓库目录权限:
  

chmod 775 git  
cd repos
  

chmod 775 repos  

  或则,查看下RELinux有没有关闭,关闭RELinux服务,就是这个鬼东西,纠结了我一个下午,最后还是Stack overflow中找到的答案。
  

setenforce 0  

  GitWeb也搞定了,直接在浏览器里输入:gitserver.com,或则http://ip地址就会出现git仓库目录的web界面

  第二部分:Windwos 客户端设置
  下载msysGit,默认安装就可以。就如SVN的小乌龟一样,Git也提供了一个GUI界面 - TortoiseGit。 安装TortoiseGit之前需要需要先安装msysGit。
  第一个要配置的是用户名和电子邮件地址,提交时会引用这两条信息来说明是谁做了什么操作,这个可以通过Git bash配置
  

git config --global user.name "matt chen"  
git config
--global user.email studentctz@hotmail.com  

  也可以通过TortoiseGit 的setting来配置:

  第二件事情,生成SSH公钥:

  将生成的公钥,以邮件的形式发送给Git Server管理员,由管理员将public key添加到git用户的authorized_keys文件中:
  

cat /tmp/id_rsa.matt.pub >> ~/.ssh/authorized_keys  

  现在使用putty中工具PuttyGen,Load刚生成的id_rsa私钥文件,然后选择save private key,将OpenSSH格式的私钥保存为putty所认识的私钥格式ppk.

  运行PAGENT,选择Add keyw,指定刚刚转换格式的私钥,如果不转换格式,就会报如下错误,

  现在就可以通过SSH方式来克隆Git Server中的仓库了

  讲一下,我遇到一个困惑许久的问题,在自己搭建Git Server之前,一直使用GitHub,只要使用puttygen生成公钥和私钥,讲公钥传到github中,通过私钥就能add ,commit文件。当自己搭建Git Server的时候,也一直以为也该这样。但结果是一直不行,都不能建立连接。后来终于明白了,git server端使用的是OpenSSH,和putty是不同的SSH协议,就像刚才做的那样需要转换。如果细心点,安装TortoiseGit的过程中就应该注意到这个区别。

  第三部分:与eclipse集成 - Egit插件
  安装Egit,eclipse –> Help –>Eclipse MarketPlace 在find中输入egit,点击install就可以,这个过程比较慢,你也可以直接到Egit官网下载,手动安装。

Git with Eclipse (EGit) - Tutorial有详细讲解怎么用,在结合这篇 使用github管理Eclipse分布式项目开发,应该够了。
  第四部分:从SVN迁移到Git
  请参看:

Importing from Subversion


  最后两部分没写什么,因为太困了。要睡觉了!
  本文参考了如下文章:
  pro git : https://github.com/progit/progit/tree/master/zh
  搭建gitweb: http://www.tech126.com/%E6%90%AD%E5%BB%BAgitweb%E7%8E%AF%E5%A2%83/
  stack overflow: http://stackoverflow.com/questions/10275536/configuring-gitweb-404-no-projects-found
  安装git server :http://loading.1976.blog.163.com/blog/static/1278037142011818112249642/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-435125-1-1.html 上篇帖子: Android拓展系列(2) 下篇帖子: 【C#】纯托管实现一个Git服务端
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表