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

  

  

  

  

  

  

Windows下安装 msysGit 以及初始化 Git server环境的更多相关文章

  1. Windows 下用 gogs 配置局域网 git server

    大道曙光 Windows 下用 gogs 配置局域网 git server 最近要用 C# 开发一个新的项目,所以需要在 Windows 局域网环境下构建一个 git server. 在 Window ...

  2. windows下安装msysgit 及ruby

    一:安装msysgit git是目前最流行的软件版本控制软件,在window下通常使用msysgit 下载:http://msysgit.github.io/ 安装:基本上一路默认下一步就行 安装之后 ...

  3. windows下安装python的C扩展编译环境(解决“Unable to find vcvarsall.bat”)

    个人文章除注明转载外,均为个人原创或者翻译. 个人文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商: 本文链接:http://www.cnblogs.com/f ...

  4. windows下安装git & 在git@OSC上推送代码

    第一部分 windows下安装git 1.下载最新版本的git:直接百度“git”,如图所示,点击立即下载. 也可以直接在官网下载最新版本的git:http://www.git-scm.com/dow ...

  5. 如何在windows下安装GIT

    如何在windows下安装GIT 分步阅读 Git是一个免费的.开源的版本控制软件.在Windows上安装git,一般为msysgit,官方下载地址为 http://code.google.com/p ...

  6. windows下安装git和vundle

    git在windows下的版本是: git-for-windows, 或者说是: msysgit: ms-sys-git 直接在 https://gitforwindows.org/上下载 git对w ...

  7. windows下安装Git安装

    一:Git是什么? Git是一个代码仓库,属于分散型版本管理系统. 二:在windows下安装Git 载msysgit 1. 访问 msysGit 的项目主页,下载 msysGit.http://ms ...

  8. windows下安装redis和memcached

    redis安装: http://www.68idc.cn/help/server/20141128135092.html phpredis下载地址:https://github.com/phpredi ...

  9. RPM方式安装MySQL5.6和windows下安装mysql解压版

    下载地址: http://cdn.MySQL.com/archives/mysql-5.6/MySQL-server-5.6.13-1.el6.x86_64.rpmhttp://cdn.mysql.c ...

随机推荐

  1. 修改VNC分辨率大小

    实验系统是centos6.5,在被连接的机器上需要安装vncserver. 1.第一种方法:使用geometry参数进行调整使用man命令获得关于geometry参数的描述[root@secdb ~] ...

  2. java 继承多态的一些理解不和不理解

    1.向上转型的一个误区 一直以为Child 继承Parent以后, Parent p = new Child();  p可以调用Child类中拓展Parent的方法,原来必须在强制转换成Child类才 ...

  3. python chardet简单应用

    python的字符串编码识别模块(第三方库): 官方地址: http://pypi.python.org/pypi/chardet   import chardet import urllib   # ...

  4. 简单理解在Mac OS X上运行ASP.NET程序

    运行ASP.NET程序的三要素: 1) CLR(.NET运行时) 2) KRE(ASP.NET运行时) 3) Web服务器 所以在Mac OS X上运行ASP.NET程序,就需要对应这三要素的东西: ...

  5. 解决代码着色组件SyntaxHighlighter行号显示问题

    SyntaxHighlighter是根据代码中的换行符分配行号的.但是,如果一行代码或者注释比较长,在页面显示时需要分成多行显示,这时行号就对不上了.如下图: 通过下面的css强制不换行,可以避开这个 ...

  6. Salesforce 快速查看被引入Package的组件

    在 Salesforce Package 生成一个新版本的时候,由于经常需要去检查有哪些新的组件将要被引入 Package 中,这个在有众多组件的情况下检查起来会有点眼花缭乱,为了方便,就想着用 JS ...

  7. Sublimetext (for windows)编译运行c出现Error 2错误的解决办法

      错误描述大概如下: [Error 2]  [cmd:  [u'bash', u'-c', u"g++ 'D:\\codeblocks\\project\\test.c' -o 'D:\\ ...

  8. Java程序员的日常 —— 工作一天的收获

    看题目可能是扯皮,其实还是有很多专业知识的.从最开始没有注意到设计原则,到后面的jquery实战技巧,都是今天一天碰到的问题. 每天整理一点点,每天收获一点点. 关于软件设计 在设计系统结构的时候,一 ...

  9. Sublime Text 常用快捷键和优秀插件

    SublimeText3常用快捷键和优秀插件 SublimeText是前端的一个神器,以其精简和可DIY而让广大fans疯狂.好吧不吹了直入正题 -_-!! 首先是安装,如果你有什么软件管家的话搜一下 ...

  10. atitit.js 各版本 and 新特性跟浏览器支持报告

    atitit.js 各版本 and 新特性跟浏览器支持报告 一个完整的JavaScript实现是由以下3个不同部分组成的 •核心(ECMAScript)--JavaScript的核心ECMAScrip ...