Git在Windows下搭建本地远程仓库及一些问题小结

Git是一个好东西,但是一般都是用来和Github交互,而如果是在公司内部、研发小组内部使用,把代码放在github就不合适了,所以需要在本地建立远程仓库。

这两天一直在搞这个东西,但是踩了无数的坑,主要原因有二:①git通信主要是ssh,有人说github用https替代ssh了,但是本地远程仓库我没找到用https的方法;②Windows原生不支持ssh,Windows在15年的时候出了一个openssh的补丁,但是也不好用,而鉴于此,网上绝大部分的资料都是Linux下搭建git本地远程仓库,而且很多都是非常旧的资料在来回转发。

今天总算把服务器搭建起来了,下面总结一下经验、注意点和网上文章错误的地方。

1)基于ssh+rsa建立git通信,首先要有ssh服务器。网上推荐的几款服务器都是收费的,而且功能限制很严格,比如只能有一个账号(Copssh),比如不支持高级配置(rsa认证也叫高级配置?!)(Mobassh)等等。最后,发现一款好用配置简单限时免费(1个月),叫Bitvise ,但是功能强很多!后面会提及Bitvise的配置。

2)安装git on Windows,可以在git官网得到,cmd里面没有ssh-keygen,但是git的shell里面有,安装好git后,打开git bash,直接:ssh-keygen -t rsa -C "你的任意用户名",接下来会提示你生成文件的绝对路径+名字(不带后缀),接下来提示你输入密码(可以直接回车赋空)。网文说用户名要填邮箱,其实不必,用户名是用来生成钥匙对的,你输入什么都行,最后服务器要的也只是公钥和用户名。

3)git本地仓库添加远程仓库指令:git remote add origin bl@192.168.0.188:/d/myrepo    说明:origin是远程仓库的别名,可以是任意的,不过网文例子里面全是这个,我也不免俗;origin是git的默认远程仓库别名,如果通过clone bl@192.168.0.188:/d/myrepo获取远程仓库,再remote -v就可以看出来;bl@192.168.0.188:/d/myrepo是远程仓库地址,bl是登录远程仓库的ssh用户名,也就是2)里面生成rsa用的用户名,ip是远程仓库的地址,后面的是D盘下myrepo文件夹为仓库文件夹。网文这里都喜欢用git@xxx/xxx的格式,这就给人一个错觉,好像远程仓库开头必须是git,而关于这个地址格式很多网文互相转,谁也没说,有的网文例子是在Linux下新建一个git用户,然后用此格式,所以其实此git是远程仓库上的一个用户,而非git本身。远程仓库还有一个格式(其实就是指定使用ssh):ssh://username@ipaddress/resource。resource地址同上例的d/myrepo。使用Bitvise的时候要注意,如果添加用户的时候设置了仓库地址,那上面的resource地址不要填,否则会找不到仓库(返回信息可以看到是仓库地址不对)。

4)git的用法可以见链接http://mp.weixin.qq.com/s?__biz=MjM5OTA1MDUyMA==&mid=403636269&idx=2&sn=62d8327286c6ca8bd8898f51755ecdba&scene=0#wechat_redirect  这篇文章写的非常详细,例子很简单。

5)如果不用ssh服务器,Windows下就需要用cygwin,但是我下载了两天才下载成功。CSDN里面有离线安装包,但是是2011年的(2015年上传的,草)。下载了cygwin的安装器(setup.exe)后打开,下一步直到网络连接的方式,第一个直连Internet,第二个是通过代理。我用第一个从来没成功过,用第二个通过代理可以得到镜像列表。得到镜像列表,选择其中一个镜像,下一步,就到了Linux组件选择界面。这里一定要搜索openssh,因为默认(default)是skip,也就是不安装,搜索出来后debug分支下的不要install,选择openssh的install,下一步后就会自动下载了。其实如果连接网络刷不出镜像的话,也可以上cygwin官网,左边目录有镜像列表,推荐东软的镜像,不仅cygwin,其他你想要的东西他都有镜像,而且速度特别快,几乎满速下载。不要用163的,不是速度奇慢,就是下一会儿失败。

不过我们仅仅是需要一个ssh服务器,去下载一个cygwin没必要,还是建议找ssh服务器,除非你是想学Linux。。。好消息是win10支持Ubuntu了,更没必要下cygwin了。。。

6)ssh的配置和rsa的生成比较简单,网文里都是,拿来就可以用。

7)Bitvise还有个优点,支持虚拟用户。其他工具,包括网文,配置ssh 的时候需要添加一个用户到系统里面。但是Bitvise支持添加虚拟用户,用于ssh连接,而且可以配置虚拟用户的连接方式(禁止shell、cmd、powershell、其他shell如putty、仅git),选定连接方式后,用其他方式就无法登陆服务器,比如选定仅git,则putty也不行,看Bitvise的日志,其实是验证成功,但是拒绝该方法连接。Bitvise的日志也非常详细,每一对交互指令执行了什么、相关的命令目录、失败原因、成功提示等等,而且是xml格式,而且很好找(有的工具找log都找不到。。。)。

8)Bitvise在添加用户的时候,选择publickey,然后添加你的rsa公钥;选择git方式后,会出现git目录选择,这里用的工具实际是git-upload-pack,他不在git/bin下面,而是在git/mingw/bin下面,所以这里要选择git/mingw/bin(也可能是mingw64),下面是git仓库目录,填不填参照3)。

9)服务器工具的好处是不用配置即可开机自动启动,cygwin需要配置一下(没试过)。

10)有很多互转的网文里说创建远程仓库需要用git init --bare,也就是加--bare参数,说是这样创建的就是共享仓库,其实看看--bare的说明,看看官方教程的例子,bare的意思如果没有设置GIT_DIR环境变量,则把当前目录(即执行git指令时所在目录)做为工作目录(git的目录)。但是此时参考只有远程读权限(pull),--share才是共享仓库,为远程仓库增加写权限(push)

多用户还没试,权限管理还没试,以后再加。

暂时就这些,想起来了随时更新。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值