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

[经验分享] Windows下安装 msysGit 以及初始化 Git server环境

[复制链接]

尚未签到

发表于 2018-1-15 19:29:11 | 显示全部楼层 |阅读模式
  Windows下git工具msysGit使用以及Git server初始化
  Windows下git工具,这里选择msysGit,版本为msysGit-netinstall-1.8.1.2-preview20130201。因为Git本身是运行在Linux下的,所以要想在Windows环境下使用,必须构建一个与Linux一样的虚拟环境。msysgit是 Git 版本控制系统在 Windows 下的版本,msysGit  作为 Window 平台下的原生程序。所以每一个要连接Git server的windows客户端必须要在本地windows下安装msysGit。
  1、Windows下安装msysGit
  安装过程非常简单,确认安装选择盘符之后,会跳到如下开始初始化本地git环境:

  初始化过程完成之后,就会出现于linux一样的命令行,如下:

  如果安装完之后,命令行窗口没有跳出来,请到安装目录下点击msys.bat,如F:/msysGit/msys.bat。
  2、生成SSH Key
  在本地客户端通过命令行直接生产SSH Key,
  $ ssh-keygen -t rsa

  由于我这里已经生成了,所以这里提示这个密钥已经存在!此时会在~/.ssh/下生成两个密钥id_rsa,id_rsa.pub
  id_rsa,私钥
  id_rsa.pub 公钥,这个要保存Git server上,作为访问Git server的权限。
  3、初始化管理员,并启动Gitosis
  在windows客户端,将公钥传输到远程的Git server上,如下:

  通过命令在客户端上将公钥远程传输到线上
  $  scp ~/.ssh/id_rsa.pub git@server:/tmp
  此时在Git server的/tmp目录下应该就能看到这个公钥了。
  在Git server上操作如下:
  /tmp$ sudo chmod a+r ./id_rsa.pub  //先给这个公钥所有权限
  启动Gitosis命令,完成如下图:
  /tmp$ sudo -H -u git gitosis-init < /tmp/id_rsa.pub  

  启动Gitosis之后,初始化gitosis-admin.git库文件
  此时去/home/git/repositories下可以看到gitosis-admin.git库文件,在gitosis-admin.git下可以看到相关内容如下:

  权限控制在gitosis.conf,公钥SSH Key文件放在/home/git/repositories/gitosis-admin.git/gitosis-export/keydir下,以后所有的客户端用户的公钥都放在这个文件下
  另外,给/home/git/repositories/gitosis-admin.git/hooks/post-update权限,如下:
  $ sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
  到此管理员初始化完成,Git Server配置完成
  4、从Git server上clone版本库到本地
  接下来就是在客户端远程访问版本库,在windows下开启msysGit,进入命令窗口
  加入想把版本库存在本地f盘,如下:
  $ cd /f
  $ git clone git@192.168.10.49:gitosis-admin.git  //在本地f盘下可以看到gitosis-admin文件目录

  如上显示,表示clone完成!
  5、测试
  在Git server上新建一个版本库如下:
  $ su git
  $ mkdir /home/git/repositories/hello.git
  $ sudo chown -R git:git /home/git/repositories/hello.git
  $ cd /home/git/repositories/hello.git
  $ git --bare init
  切换root用户操作
  cat /home/git/repositories/gitosis-admin.git/gitosis.conf
  新增访问版本hello的权限,编辑gitosis.conf文件,修改如下:  
[gitosis]

[group gitosis-admin]

  members = Administrator@CANDLE-PC
  writable = gitosis-admin
[group developers]

  members = Administrator@CANDLE-PC
  writable = hello
  初始化完成hello版本库。然后通过windows客户端msysGit进行clone,并提交文件如下:
  git clone git@192.168.10.49:hello.git
  完成版本clone。
  测试提交文件,如下: 
  【第一次提交】 
  git add a.txt
  git commit -a -m 'add a.txt'  //第一次提交时,因为当前是一个空项目,commit后面跟一个参数-a,git commit -a 提交当前repos的所有的改变,否则会在git push origin master时报错
  git push origin master
  【第二次提交】commit不需要加参数-a
  git add a.txt
  git commit -m 'add a.txt'
  git push origin master
  6、问题
  A、clone的时候,报错:ERROR:gitosis.serve.main:Repository read access denied
  解决方案:<1>可能是git的权限配置文件members = Administrator@CANDLE-PC,与/home/git/repositories/gitosis-admin.git/gitosis-export/keydir/Administrator@CANDLE-PC.pub这名字不一致,改成一致即可。
  <2>git clone路径问题,通常我们都是采用全路径,git clone git@192.168.1.100:/home/git/repositories/hello.git,这里访问可能报上名的错误,换成这样,直接访问库文件目录git clone git@192.168.1.100:hello.git 即可!
  B、执行 git push origin master的时候,报错
  error: src refspec master does not match any.
  error: failed to push some refs to 'git@192.168.1.100:hello.git'
  解决方案:第一次提交时,因为当前是一个空项目,commit后面跟一个参数-a,git commit -a 提交当前repos的所有的改变
  【第一次提交】 
  git add a.txt
  git commit -a -m 'add a.txt'  //第一次提交时,因为当前是一个空项目,commit后面跟一个参数-a,git commit -a 提交当前repos的所有的改变,否则会在git push origin master时报错
  git push origin master

运维网声明 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-435455-1-1.html 上篇帖子: 一个低调的iOS开发 下篇帖子: git学习,git上建立自己的项目
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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