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

[经验分享] 用GitBlit 和 VS GitSourceControlProvider 搭建基于 Http(s) 的 Git 工作平台

[复制链接]

尚未签到

发表于 2018-1-15 07:46:15 | 显示全部楼层 |阅读模式
用GitBlit 和 VS GitSourceControlProvider 搭建基于 Http(s) 的 Git 工作平台
  说明:
  该方案可用于搭建基于Http(s)的git服务器,且客户端与visual studio集成,是一套很实用的企业内部git部署架构。
  试过好几套window平台下的git方案,这套方案是最简单的,安全权限上也很容易控制。希望对大家有用~
  架构:
  服务器端:msysgit+gitblit
  客户端:msysgit+tortoiseGit+ visual studio git source control provider
  特点:
  服务器端和客户端用https进行通讯(不用SSH,简单)
  服务器端有网站支持,可进行用户权限控制,跟踪、统计,很直观
  服务器端可派发证书给用户,用户安装证书后才可以访问服务器端GIT资源,安全
服务器端
1.安装msysgit
  Msysgit是windows版本的git环境
  下载地址:http://code.google.com/p/msysgit/
  安装:
  (1)为了避免路径问题,安装目录最好没有空格和中文(如c:\git\)。
  (2)其它的一路默认下去即可
  最好设置下系统路径:
  path C:\ Git\bin;C:\Git\libexec\git-core;%PATH%
2.安装GitBlit
2.1简介
  Gitblit是用java写的git服务端网站(类似github),以http/https方式提供git服务,可进行用户权限控制,跟踪、统计,直观、简单、强大、易用。
  官方网站:http://gitblit.com/
  下载完毕后解压到一个目录(如d:\gitblit\ )
2.2提供http服务
  (1)先确保安装了java sdk
  (2)运行gitblit.cmd即可,即可创建git网站.
  (3)如果端口冲突跑不起来,打开data\gitblit.properties文件修改下端口参数,如:
  server.httpPort = 8080                  # http服务端口
  server.httpBindInterface = localhost       # http 绑定的地址(域名或ip)
  (4)可打开浏览器查看:http://localhost:8080

  首次登录,管理员账户密码均为admin,请改掉!
  进入后可设置代码库(respository),用户(user),团队(team)
  默认的git仓库都建在data/git/ 文件夹内
  更详细的操作可查看docs/文件夹内的文档
  (5)可用git 命令进行操作,如:
  Git clone http://admin@localhost:8080/git/test.git
2.3提供https服务
  Gitblit可提供https服务,可在公网上提供安全访问渠道,可有效的鉴权、防窃听和防篡改。详细步骤可参照http://gitblit.com/setup.html。以下为简要说明:
(1)修改/data/gitblit.properties文件,如
  Server.httpPort = 0                    # 设置为0的话会关闭http服务
  Server.httpsPort = 8443                 # 设置https服务端口
  Server.httpsBindInterface = xxx.com        # https 服务绑定的主机地址(域名或IP)
  Server.certificateAlias = xxx.com          # https ca证书绑定的主机地址(域名或IP)
  Server.requireClientCertificates = true     # 客户端要访问必须强制使用https协议

(2)创建https ssl证书
  运行authority.cmd,进入Gitblit certificates authority 授权设置窗口:

  录入CA证书基本信息
  点击按钮,弹出CA证书基本信息的录入窗口(该窗口在首次运行的时候也会弹出,填写一次就可以了)

  Site name里面写该主机的ip地址或域名
  创建主机CA证书(用于声明该主机的身份)
  点击按钮,弹出创建主机CA证书的窗口,录入保存。

  创建用户个人证书(用于声明该用户的身份)
  选中某个用户,点击右侧的new certificate按钮

  查看证书
  这两步操作完成后,可在/data/ certs/目录下看到生成的证书
  可直接将里面的zip压缩包发给团队成员安装。
(3)用电子邮件将证书发送给团队成员(可选步骤)
  设置邮件服务器信息:

  若有需要,可修改邮件模版文件

  在之前的CA证书窗口中选择用户,点击按钮将证书包发邮件给用户
(4)重新启动 gitblit.cmd
  客户端安装压缩包内的.p12证书 后,即可以https方式(ie或chrome)访问网站:https://www.xxx.com:8443/
  更详尽的客户端使用说明请参考后继章节。
客户端
1.安装msysgit
  Msysgit是windows版本的git环境
  下载地址:http://code.google.com/p/msysgit/
  安装注意:
  (1)为了避免路径问题,安装目录最好没有空格和中文(如c:\git\)。
  (2)可不用集成资源管理器菜单,因为后面的tortoisegit还会集成。
  (3)其它的一路默认下去即可
  最好设置下系统路径:
  path C:\ Git\bin;C:\Git\libexec\git-core;%PATH%
2.安装HTTPS SSL客户端证书
2.1 查看管理员发给你的证书包
  里面有若干的证书文件(假设用户名为cjh,且保存在d:\gitclient\_keys\ssl\cjh\目录下):
  Cjh.p12 包含了私钥和公钥和CA证书(供浏览器用)
  Cjh.pem 包含了私钥和公钥和CA证书(供git客户端用)
  --------------------------------------------------------------------------------------
  Cjh.cer 私钥
  Ca.cer 服务器端公钥证书
  Readme.txt 安装指导
2.2 安装.p12证书
  该.p12证书是供浏览器用的。双击安装.p12文件,一路默认,会提示你输入保护密码(问管理员)。安装完毕后可用IE和chrome访问服务端网站,firefox的p12安装请看安装指导。结束后可在internet选型->内容->证书内找到两个证书:
  (1)受信任的根证书颁发机构: git.xxx.com的CA证书,用于标志该网站的身份
  (2)个人证书:客户端用该证书连接git.xxx.com的https服务。

  安装p12证书后,即可访问GIT服务器端网站,如 https://git.xxx.com:8443/
2.3 配置pem证书
  该证书是git客户端用的。
  openssl rsa -in "d:\gitclient\_keys\ssl\cjh\cjh.pem" -out "d:\gitclient\_keys\ssl\cjh\cjh.key"
  git config --global http.sslcert  "d:\gitclient\_keys\ssl\cjh\cjh.pem"
  git config --global http.sslkey   "d:\gitclient\_keys\ssl\cjh\cjh.key"
  git config --global http.sslVerify false
  git config --global --list
  设置.pem证书成功后就可以用git访问服务器https git服务了
3.安装tortoiseGit
  http://code.google.com/p/tortoisegit/wiki/Download
  一路默认过去即可。安装成功后,资源管理器右键菜单将集成TortoiseGit。
4.安装VisualStudio GIT插件
  工具->扩展管理器->搜索并安装git source control provider,重新启动visual studio
  工具->选项->源代码管理(source control): 选择git source control provider
  设置git source control provider中的tortosegit路径C:\Program Files\TortoiseGit\bin\TortoiseGitProc.exe


5.GIT基本操作
5.1 clone仓库
  在d:\gitclient\目录内空白处,右键菜单->Git Clone,从服务器端将库克隆下来,地址
  https://admin@git.xxx.com:8443/git/test.git
  也可以直接打命令行:
  git clone https://admin@git.xxx.com:8443/git/test.git d:\gitclient\test
  Cloning into 'test'...
  remote: Counting objects: 11, done
  remote: Finding sources: 100% (11/11)

  remote: Getting>  remote: Total 11 (delta 0), reused 11 (delta 0)
  Unpacking objects: 100% (11/11), done.
5.2 Commit(到本地库)
  在visualstudio中用右键菜单进行commit操作(若未安装tortoisegit,可直接用git bash命令行工具)

  Commit时必须写点东西;commit结束后可以push到服务器端。

  注:commit全选文件的技巧:用shift键全选,再点击checkbox。
5.3 Push(到服务器库)

运维网声明 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-435212-1-1.html 上篇帖子: 恢复 git reset 下篇帖子: Git使用初步
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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