Windows下安装 msysGit 以及初始化 Git server环境
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环境的更多相关文章
- Windows 下用 gogs 配置局域网 git server
大道曙光 Windows 下用 gogs 配置局域网 git server 最近要用 C# 开发一个新的项目,所以需要在 Windows 局域网环境下构建一个 git server. 在 Window ...
- windows下安装msysgit 及ruby
一:安装msysgit git是目前最流行的软件版本控制软件,在window下通常使用msysgit 下载:http://msysgit.github.io/ 安装:基本上一路默认下一步就行 安装之后 ...
- windows下安装python的C扩展编译环境(解决“Unable to find vcvarsall.bat”)
个人文章除注明转载外,均为个人原创或者翻译. 个人文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商: 本文链接:http://www.cnblogs.com/f ...
- windows下安装git & 在git@OSC上推送代码
第一部分 windows下安装git 1.下载最新版本的git:直接百度“git”,如图所示,点击立即下载. 也可以直接在官网下载最新版本的git:http://www.git-scm.com/dow ...
- 如何在windows下安装GIT
如何在windows下安装GIT 分步阅读 Git是一个免费的.开源的版本控制软件.在Windows上安装git,一般为msysgit,官方下载地址为 http://code.google.com/p ...
- windows下安装git和vundle
git在windows下的版本是: git-for-windows, 或者说是: msysgit: ms-sys-git 直接在 https://gitforwindows.org/上下载 git对w ...
- windows下安装Git安装
一:Git是什么? Git是一个代码仓库,属于分散型版本管理系统. 二:在windows下安装Git 载msysgit 1. 访问 msysGit 的项目主页,下载 msysGit.http://ms ...
- windows下安装redis和memcached
redis安装: http://www.68idc.cn/help/server/20141128135092.html phpredis下载地址:https://github.com/phpredi ...
- 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 ...
随机推荐
- 【kd-tree】bzoj2850 巧克力王国
分四种情况讨论:a,b>=0 a,b<0 a>=0,b<0 a<0,b>=0 然后每次检验是否进入一个矩形框 或者 是否直接利用这个矩形框的答案 仅仅利用两个对角的 ...
- 关于动态生成dom绑定事件失效的原因
之前做项目都是直接用jquery的bind绑定事件,不过当时都不是动态生成dom元素,而是已经页面中原本存在的dom元素进行事件绑定,最近在测试给动态生成的dom绑定事件的时候发现事件失效,于是就测试 ...
- Java里的if else语句例子
import java.util.Scanner;public class if_else2{ public static void main(String[] args) { Scanner s=n ...
- ubuntu 启动项创建器 选择不了CD镜像,IOS镜像的解决方法
自己系统是ubuntu14.04 , 想使用 ubuntu自带的启动项创建器(usb-creator-gtk)做一个CDLinux的U盘启动项, 打开程序后发现U盘识别了, 在添加镜像的时候,发现怎么 ...
- Windows 8.1 应用再出发 - 创建我的第一个应用
转眼间Windows 8.1已经发布了四个多月,之前因为开发需要对Windows 8.1新特性进行过零散的学习和使用,一直没有静下心来系统的学习过.近日部门有几名新同事加入,需要进行Windows 商 ...
- Static Constructors
A static constructor is used to initialize any static data, or to perform a particular action that n ...
- 5.1 Intent
Intent是不同组件之间相互通讯的纽带,封装了不同组件之间通讯的条件.Intent用于启动Activity, Service, 以及BroadcastReceiver三种组件, 同时还是组件之间通信 ...
- ios9关闭系统自动更新
链接:https://www.zhihu.com/question/37297197/answer/104363172 https://www.zhihu.com/question/37297197/ ...
- Java正则表达式的应用
在很多种情况下,我们都必须对字符串进行匹配,以便判断字符串的格式是否符合要求,对字符串中的内容进行提取.比如,我要从一段话aabdfe中,判断这段话是否有包含ab这个词,那么如果用if-else来判断 ...
- HTTP权威指南阅读笔记五:Web服务器
Web服务器会做些什么: 1.建产连接:接受一个客户端连接,或者如果不希望与这个客户端建立连接,就将其关闭. 1)处理新连接 2)客户端主机名识别 3)通过ident确定客户端用户 ident在组织内 ...