windows怎么安装git服务器,第1张

Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不讨论),但是SSH有客户端服务器端,所以在windows下的开发要把自己的Git仓库共享出去的话,就必 须做SSH服务器。

一、安装GIT

Windows下使用msysgit,

本文使用Git-178-preview20111206exe 安装要点步骤

安装完成后,可以使用Git bash在命令行模式下操作git

二、安装CopSSH

安装CopSSH之前先确保防火墙开启了SSH端口,这个虽然不影响CopSSH的安装,但是影响SSH访问,所以写在前面。

CopSSH是windows下的SSH服务器软件,下载地址baidu之,本文使用的是Copssh_410_Installerexe,

安装完成后,到控制面板中新建一个管理员账户root,用这个账户来共享SSH。然后你在账户管理中会看到之前的SvcCOPSSH账户。

将root用户添加到CopSSH用户中,为简单操作,允许使用密码认证方式

若是不允许密码认证,则需要使用公钥密钥方式认证,

三、CopSSH中使用GIT

现在已经安装GIT和CopSSH,接下来需要做的就是让CopSSH可以使用GIT的命令,这样不仅能够远程SSH管理GIT服务器,而且可以将GIT仓库通过SSH共享。具体的操作方法是将GIT的某些命令程序和动态链接库复制到CopSSH安装目录下即可。

l 将$ Git\libexec\git-core目录下的gitexe , git-receive-packexe , git-upload-archiveexe , git-upload-packexe复制到$ICW\bin目录下

l 将$Git\bin目录下的libiconv-2dll复制到$ICW\bin目录下

重启CopSSH即可

首先需要装好CentOS系统,作为测试,你可以选择装在虚拟机上,这样比较方便。这步默认你会,就不讲了。

有了CentOS,那么如何搭建Git服务器呢?

1、首先需要安装Git,可以使用yum源在线安装:

[root@localhost Desktop]# yum install -y git

2、创建一个git用户,用来运行git服务

# adduser git

3、初始化git仓库:这里我们选择/data/git/learngitgit来作为我们的git仓库

[root@localhost git]# git init --bare learngitgit

Initialized empty Git repository in /data/git/learngitgit/

执行以上命令,会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以git结尾。然后,把owner改为git:

[root@localhost git]# chown git:git learngitgit

4、在这里,Git服务器就已经搭得差不多了。下面我们在客户端clone一下远程仓库

Zhu@XXX /E/testgit/834

$ git clone git@192168834:/data/git/learngitgit

Cloning into 'learngit'

The authenticity of host '192168834 (192168834)' can't be established

RSA key fingerprint is 2b:55:45:e7:4c:29:cc:05:33:78:03:bd:a8:cd:08:9d

Are you sure you want to continue connecting (yes/no) yes

Warning: Permanently added '192168834' (RSA) to the list of known hosts

git@192168834's password:

这里两点需要注意:第一,当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:

The authenticity of host 'githubcom (xxxxxxxx)' can't be established

RSA key fingerprint is xxxxxxxxxx

Are you sure you want to continue connecting (yes/no)

这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。

Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:

Warning: Permanently added 'githubcom' (RSA) to the list of known hosts

这个警告只会出现一次,后面的操作就不会有任何警告了。

如果你实在担心有人冒充GitHub服务器,输入yes前可以对照GitHub的RSA Key的指纹信息是否与SSH连接给出的一致。

第二,这里提示你输入密码才能clone,当然如果你知道密码,可以键入密码来进行clone,但是更为常见的方式,是利用SSH的公钥来完成验证。

5、创建SSH Key

首先在用户主目录下,看看有没有ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsapub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

$ ssh-keygen -t rsa -C "youremail@examplecom"

你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。

如果一切顺利的话,可以在用户主目录里找到ssh目录,里面有id_rsa和id_rsapub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsapub是公钥,可以放心地告诉任何人。

6、Git服务器打开RSA认证

然后就可以去Git服务器上添加你的公钥用来验证你的信息了。在Git服务器上首先需要将/etc/ssh/sshd_config中将RSA认证打开,即:

1RSAAuthentication yes

2PubkeyAuthentication yes

3AuthorizedKeysFile ssh/authorized_keys

这里我们可以看到公钥存放在ssh/authorized_keys文件中。所以我们在/home/git下创建ssh目录,然后创建authorized_keys文件,并将刚生成的公钥导入进去。

然后再次clone的时候,或者是之后push的时候,就不需要再输入密码了:

Zhu@XXX/E/testgit/834

$ git clone git@192168834:/data/git/learngitgit

Cloning into 'learngit'

warning: You appear to have cloned an empty repository

Checking connectivity done

7、禁用git用户的shell登陆

出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

git:x:1001:1001:,,,:/home/git:/bin/bash

最后一个冒号后改为:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。

http://drawio 是一款开源的绘制流程图的工具,拥有大量免费素材和模板。程序本身支持中文在内的多国语言,文件管理更为方便,基于云端,可以自定义保存到云端服务器,github,gitlab,或者本地等。随时随地查看,编辑。脱离软件的限制。本文介绍如何配置本地gitlab作为文件服务器。

docker镜像地址 https://hubdockercom/r/fjudith/drawio

至此drawio和gitLab都已安装配置完成

result['gitlab-id']='72066b80d4';

result['gitlab']='http://1721625352:9000';

现在就可以用本地gitLab来存储生成的流程图文件了。

GitLab是GitHub的免费私有库替代方案,并且安装与配置都很方便。

GitLab要求最少4GB内存,支持小团队使用没问题,实测2GB内存的VPS基本没法用,开swapfile也不行,动不动就60秒超时。因此4GB内存是必须的。

关于这一点,内存大户主要是Unicorn,基于ruby的http服务器。Unicorn会在启动后预先占用大部分内存,内存会随着使用逐渐增长,并且不会释放。根据GitLab和Unicorn的官方文档,这不是它们的锅,那么这个锅可能是ruby和rails了。解决方法是unicorn-work-kill,会根据请求次数和内存占用自动重启Unicorn。Omnibus版的GitLab是默认开启的。

GitLab分为社区版和企业版,在未付费的情况下,两者的功能是一样的。并且社区版整合了CI/CD,因此可以满足绝大部分的开发需求。

安装包主要包括Omnibus整合包,Docker、AWS等的云镜像,以及一些第三方维护的版本。其中Omnibus直接整合了所有服务端组件,适合自用和练手。

安装以Omnibus整合包为例,操作系统为Ubuntu1604。

Gitlab需要 curl,openSSH 和 ca-certificates 这几个组件:

不过服务器系统一般自带,所以是可选的。

邮件服务,用于GitLab发送找回密码的邮件:

不过如果服务器没有域名的话,大部分邮箱会拒收邮件,而管理员帐号可以直接重置其他账号的密码,所以是可选的。

官方提供的脚本:

这个脚本会自动添加源到apt 的source list,以及安全key。另外,如果自己服务器在国内,脚本会自动添加清华的镜像,速度还行。

先更新apt缓存:

推荐使用 apt 而不是 apt-get ,前者大多数情况下更简单一点。

然后是安装:

其中 EXTERNAL_URL ,改成自己的域名。没有域名的话,可以直接设置成IP的形式: http://1234 ,这个推测跟nginx服务以及GitLab中的项目地址有关,所以最好正确设置。当然也可以之后在配置文件里更改。

安装完成后,可以在配置文件中修改配置 /etc/gitlab/gitlabrb 。

比如之前的 EXTERNAL_URL :

官方还有一个关于 unicorn 的优化建议:

默认值是2,如果服务器只用于GitLab的话,官方建议是CPU核心数加一,可以提高服务器的响应速度。不过如果内存只有4G,或者服务器同时承载其他服务,就不要改了,以免内存不足。另外,这个参数最小值是2,设为1,服务器可能会卡死。

配置完成后,刷新配置:

每次修改完 gitlabrb ,都要刷新配置。

如果没有报错的话,GitLab就配置完毕并且正常运行了。接下来可以打开浏览器开始访问了。

基本原理:使用copSSH在WINDOWS(XP)上建立SSH服务器;使用生成的“公钥-私钥”对作为身份标识;在服务器上配置SHELL脚本环境;配置客户端,加载私钥。详细过程如下:

  安装前准备:

Download copSSH [SourceForge Link] (注:SSH服务器软件)

Download msysgit (注:WINDOWS下的git安装包)

Download TortiseGIT (注:WINDOWS下的git图形化软件,与TortiseSVN是同门)

Download PuTTY Installer (注:生成公钥-私钥对的软件,并可用于SSH客户端的登陆)

  Step1 -安装copSSH

1将copSSH(basic edition 200)安装到路径 c:\SSH

2安装过程中写下SvcCOPSSH的密码,你可能永远不会用到,但写下也无伤大雅。

3启动copSSH,选择 开始->所有程序->copSSH->control panel;然后激活一个用户(假定为Administrator,选择Users->Add,下一步,选择一个用户,不要勾选Allow password authenticatin选项,点击forward,OK。

4其他关于public keys的事情无需操作,后面还会讲到。

  Step2-配置copSSH

1选择路径-C:\SSH\etc ,在记事本中打开ssh_config 和sshd_config(注意:两个文件有一个字母“d”的区别)

2ssh_config -删除Port前的#号,设置端口号,这里采用默认端口22

3sshd_config -保证端口号一致

4确定系统防火墙中该端口未关闭。(这一点很重要)

5重启系统

  Step3-安装Putty

1重启之后,继续回来,现在可以安装Putty Installer了。

2导航至你的安装路径,通常为c:\program files\Putty

3打开PuttyGenexe

4选择生成密钥的长度4096

5在空白面板处不停地晃动鼠标(用于生成随机种子),直到生成结束。(不要关闭PuttyGen)

6来到路径c:\SSH\Home\Administrator\ssh\ (这个路径在你使用copSSH激活用户时会产生,根据你激活的用户名,选择相应的路径),创建文件authorized_keys (注意没有后缀名)

7打开PuttyGen,复制Public Key(公钥)到文件authorized_keys ,并保存

8在PuttyGen中,将Private Key(私钥)保存为private_keyppk,保存在同一目录下。-比如,我的保存目录为c:\SSH\Home\Administrator\ssh\private_keyppk

9现在目录下应该有两个文件了,authorized_keys 和 private_keyppk

10为了测试连接,运行puttyexe

11在打开的界面中输入IP 地址(本机可以为localhost)和端口号

12打开左侧的菜单,选择Connection-SSH-Auth,选择你的私钥文件,c:\SSH\Home\<user>\ssh\private_keyppk

13点击Open,就会打开终端,让你输入Login Name,输入Administrator(注意大小写)

14你会看到显示接受你的公钥(Accept Public Key),客户端登陆成功,登陆信息也会缓存起来。

  Step 4-安装 msysgit和TortiseGIT

1安装msysgit的过程中一路下一步即可,假定你的路径为C:\msysgit

2安装TortiseGIT,完成之后

 1)在任意路径点右键,选择TortiseGIT-Settings,设置gitexe的路径为c:\msysgit\msysgit\bin,即为msysgit的安装路径

 2)在左侧菜单中选择Network,选择SSH Client为putty中的plinkexe(如我的路径为C:\Program Files\PuTTY\plinkexe)

3将几个GIT运行中需要的文件复制到SSH服务器目录,当客户端远程登陆上来以后需要执行这些文件,文件源路径为c:\msysgit\msysgit\Git\libexec\git-core ,要复制的文件包括gitexe, git-receive-packexe, git-upload-archiveexe and git-upload-packexe,将以上文件复制到C:\SSH\Bin

  Step5-配置用户环境

1对于copSSH来说,其默认的$HOME环境为c:\Documents and Settings\<user>,GIT也将会在该目录下寻找authorized_keys 文件。当然,这是咱要避免的事儿,我们要将GIT的路径重定向到C:\SSH\Home\<user>\ssh 。

2选择路径C:\SSH\Home\Administrator\,打开bashrc文件,在# User dependent bashrc file下面加上这样一段:export HOME=/c/SSH/home/Administrator Shell Options,(注意不要有其他空格出现),然后选择保存。

3把该文件复制到用户目录下,如: c:\Documents and Settings\Administrator\

  Step7-使用GIT和Plink

1打开路径C:\SSH\home\Administrator,创建文件夹myappgit

2 在该文件夹上点右键,选择git create repository here,勾选make it bare,服务器文件仓库创建成功。

3导航至路径c:\Program Files\PuTTY ,打开pageantexe,选择add key,将你的私钥(private_keyppk)加载上。

4然后右键选择 git clone,url设为ssh://administrator@127001:22/SSH/Home/administrator/myappgit ,如果clone成功,恭喜你,大功告成!

关于git的操作详见git的使用说明,这里推荐Pro Git 简体中文版,翻译的很不错。

  注:在执行git clone时可能会报错(该错误在所参考的E文中未提及,把俺害得不轻),如果是关于某个dll文件的错(具体是哪个文件记不清了,遇到的朋友可以根据文件名,在msysigt目录下搜索即可找到),可以将该文件同样复制到C:\SSH\Bin下,然后就可以正常运行了。

GitLab是由Ruby语言开发的基于Linux的Git服务器,是我见过的最强大的Git服务器。发现它之后,立即决定将Git服务器换成GitLab。

但安装好GitLab之后面临一个问题,如何将服务器上的git项目直接导入到GitLab,之前的Git服务器是由是git+apache搭建的(详见在Linux上用Apache搭建Git服务器)。

在网上发现了这篇文档——Import bare repositories into your GitLab instance,并按之进行了操作。

1)设置存放代码库的主目录

vi /etc/gitlab/gitlabrb

比如这里设置为:git_data_dir "/gitlab/repos"

2)访问刚搭建的GitLab站点,创建一个group,比如cnblogs。

这时会在 /gitlab/repos 下创建 /gitlab/repos/repositories/cnblogs 文件夹。

然后在/gitlab/repos/repositories/创建一个文件夹,比如cnblogs

3)将现有的所有git项目文件复制到这个文件夹

cp -r /data/git/ /gitlab/repos/repositories/cnblogs

4)修改一下复制过来的文件夹的所有者:

chown -R git:git /gitlab/repos/repositories/cnblogs

5)运行GitLab导入命令

cd /var/opt/gitlab

gitlab-rake gitlab:import:repos

等了一段时间之后,显示done,却一个项目也没导入进来。

经研究发现,在导入时,GitLab只认文件夹名以git结尾的项目。于是,将要导入的项目文件夹名称加上git后缀,再次进行导入。

结果显示导入成功,比如:

Processing cnblogs/CNBlogsJobgit

Created CNBlogsJob (cnblogs/CNBlogsJobgit)

Done!

可以是GitLab站点上却看不到已导入的项目。多次努力,也没能解决这个问题。

后来,实在没办法,改为手动导入,导入方法如下:

1)在GitLab站点上创建与要导入的项目同名的项目。

2)进入刚创建的项目文件夹

cd /gitlab/repos/repositories/cnblogs/项目名称git

3)删除该文件下的所有文件

rm -rf

4)将要导入的项目文件夹下的所有文件复制过来

cp -r /data/git/CNBlogsJob/ /gitlab/repos/repositories/cnblogs/CNBlogsJobgit

就这样将项目一个一个地导入进来。

5)导入完成后,修改一下导入的所有项目的文件所有者

chown -R git:git /gitlab/repos/repositories/cnblogs

如果不修改所有者,客户端无法进行git push。

就这样手动地完成了现有Git项目的导入。

备注:操作系统是CentOS 62,GitLab版本是784。

我使用的gogs+cetos6搭建git服务器,因为gogs搭建服务器比较简单

我给您大概说一下搭建过程

linux服务器上安装mysql,并创建gogs数据库

linux服务器上安装git

linux服务器上安装gogs

运行/gogs web ,然后可以通过浏览器访问: localhost:3000配置服务器

最后是开启防火墙端口3000(gogs默认端口)

因为不熟悉Ubuntu,但是过程是一样的,您可以尝试一下 :)

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » windows怎么安装git服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情