重复的轮子也是分好坏
最近朋友买了一台win服务器,准备抛弃svn用git,这个工作就交给我了。网络有一大堆关于在win服务器上配置git服务器的教程,但是如果仅仅靠某一篇,我都没成功过,综合了几篇文章才捣鼓完成。所以虽然是重复造轮子,那应该也是一个好轮子。git是什么相信不用多言。win上配置git一般配置是 Git+Copssh。下面一步一步详细记录
软硬件需求
0.服务器 – Windows server 2012 – 64bit
1.客户端 – Windows 10 – 64bit
2.服务器 – Copssh_4.1.0_Installer(注意,不保证无马)
3.服务器 – Git 1.8(官网,保证无马)
4.客户端 – Cygwin(官网,保证无马)
鉴于Xcode的挂马事件,下载这类软件的时候请大家多找几个链接,找到靠谱的才下。当然如果是局域网服务器 可以无视这句话。
创建单独的Git用户
进入你的服务器(通过客户端本地的附件 – 远程桌面连接),然后增加一个专门的用户给Git使用,这里设置为GitAdmin,如图所示,
请记住用户名和密码,等下需要用
安装软件
客户端 Cygwin – 客户端里安装Cygwin不用多言,安装的时候,记得勾选git就可以。
服务器 Git – 服务器的Git安装也非常简单,记住选择一个没空格的路径安装最好,例如我的 D:/git
.
服务器 Copssh – 服务器的ssh工具安装,安装目录记住选择一个没空格的最好,例如我的 D:/Copssh
,其他一路默认。
到现在你应该已经安装完毕三个软件了。除了自己创建一个安装路径之外 其他都是一路默认 这个应该没有难度的。下面说说Copssh的配置,如下系列图:
在服务器中,打开所有应用然后找到COPSSH Control Panel
,打开之,切换到Users
页签,点击Add
。
一路默认
到这里选中刚刚创建的服务器用户GitAdmin
,然后一路默认。
到这里先暂停,打开服务器的任务管理器
,然后切换到服务
页签,找到服务名为OpenSSHServer
的服务,然后右键,点击打开服务。
这个时候应该打开了服务器的服务
功能页面,同样找到服务名字为Openssh SSHD
的服务,然后右键打开属性,如下图操作,这个时候本文开始创建的用户名和密码就可以用上了。
设置完毕之后,回来服务功能页面这里,右键点击启动。如果没有意外,这个服务状态应该显示为启动的,如果弹窗提示错误,或者弹出任何无法启动的信息,请检查CopSSH是否正确安装,用户名是否正确,可通过重设用户名字和密码 重装Copssh来继续这步操作。
如果上一步操作成功,返回任务管理器,看到的服务状态应该是正在运行,看到的COPSSH Control Panel页面的图标 应该是绿色的。如果不是,请检查每一步操作是否正确。
到这里,服务器两个软件就安装并运行完毕,下面需要把git的几个文件复制到Copssh安装目录下:
git\libexec\git-core\git-upload-pack.exe 复制到 \Copssh\ICW\bin git\libexec\git-core\git.exe 复制到 \Copssh\ICW\bin git\libexec\git-core\git-receive-pack.exe 复制到 \Copssh\ICW\bin git\libexec\git-core\git-upload-archive.exe 复制到 \Copssh\ICW\bin git\bin\libiconv-2.dll 复制到 \Copssh\ICW\bin // 注意路径为安装时候设置的,如果你没按照开始的设置,请到C:\Program Files/或类似的文件夹下找。
cygwin 登陆 ssh 测试是否成功
到现在可以切换会本地客户端,测试是否可以ssh登陆服务器了。打开客户端安装的Cygwin工具,命令如下:
ssh GitAdmin@xxxxx // 注意 xxxxx 是你服务器的ip地址
如果提示让你输入密码,则输入之前设置的GitAdmin的密码,如果输入密码后 显示如下图 ,那代表ssh远程登陆配置完毕!如果不是,那请根据提示的信息 寻找解决方式。一般要检查下是否开启了22端口,还有其他防火墙是否阻碍。
cygwin git 远程创建创库
ssh配置成功之后,按照上面的步骤在客户端登陆服务器。然后如下命令创建Git仓库:
// 确保在Cygwin登陆使用ssh登陆成功的状态下 输入。 mkdir TestGit cd TestGit git init --bare
如果出现如图所示,则代表成功了。
然后,输入exit
退出登录,在客户端本地使用Cygwin 尝试克隆刚刚创建的Git仓库,如果如图所示,则完全成功了。
命令如下
// 注意 xxxxx 是你服务器的IP git clone GitAdmin@xxxxx:TestGit // 然后输入GitAdmin的密码(看吧 开头设置的GitAdmin的密码 要用到很多次的)