在 Windows 下搭建 Git 服务器

本文介绍如何在Windows环境下搭建Git服务器,包括安装SSH服务器、创建git命令符号链接、创建git库等步骤。此外,还探讨了多用户管理和添加公匙等问题。
想在命令行练习 git 命令,但不能对现在工作项目 git 库进行操作啊,如果练习操作出错就不好了。所以,想在自己电脑上搭建一个 git 服务器,这样就方便随意练习了。

初看这个问题不是很难,计划很快就可以完成呢。但直到最后,发现总共花费的有效时间有6个小时之长,零零碎碎还持续了一个星期。结果还存在没解决的问题,怎么实现在客户端连上 git 服务器时需要供登录用户提供私匙。因为工作中的 git 项目,在每次 pull、push 操作时,需要输入密码,那么在 eshell(emacs 中的 shell) 却不会要求输入密码,从而不能执行 pull 等操作,必须要通过界面操作方式来输入密码,使用起来不方便。也许能让自己更方便,是程序员最有成就感的事情吧。但最终还是没能在本地搭建需要提供密码的 git 服务器,有些遗憾。如果有哪位大神知道怎么在 windows 搭建需要提供私匙登录到 git 服务器的方式,请告诉我,谢谢!以下是我参照网上的资料和自己使用时遇到的问题及解决办法,和大家分享一下。

安装 SSH 服务器

我选择的是 CopSSH,大家可以从这里下载:http://download.youkuaiyun.com/detail/lvye1221/5618819

使用时,我参照了这篇文章 http://blog.youkuaiyun.com/jizhengjieing/article/details/6799201,大体流程如下:

添加用户

在用户管理面板中添加用户,例如:gitserver: jack-green

登录方法在命令行中:ssh gitserver@127.0.0.1,输入密码即可

在添加用户时,遇到了一个很奇怪的问题,刚开始还得到了如下结论: 注意密码不能加入‘-’字符或包含数字,例如“jack-green”、“gituser1是不行的,这样不能登入ssh。得出这样的结论有些仓促,因为重新修改的密码不包含这样的字符,就认为不能包含这样的字符,有些武断了。
其实,是因为不能使用第一次创建用户时设置的密码登录到 SSH,需要重新在用户管理中,重新设置用户的密码,就可以设置"jack-green","gituser1"之类的密码的。

添加 git 命令符号链接

网上有人直接在 git 安装目录下,手动创建连接文件,其实是没有必要的。直接登录到 SSH 中,并在命令行中操作即可:

cd /Bin

ln -s "/cygdrive/d/Program Files/Git/bin/git.exe" git.exe
ln -s "/cygdrive/d/Program Files/Git/libexec/git-core/git-receive-pack.exe" git-receive-pack.exe
ln -s "/cygdrive/d/Program Files/Git/libexec/git-core/git-upload-archive.exe" git-upload-archive.exe
ln -s "/cygdrive/d/Program Files/Git/libexec/git-core/git-upload-pack.exe" git-upload-pack.exe

创建 git 库

操作流程如下:

cd /var/
mkdir project.git
cd project.git
git init

touch a b
git add .

// 如果不配置的话,commit 不能正确执行
git config --global user.name "jack" 
git config --global user.email "jack@gmail.com"

git commit -m "first commit"

完成后,即可 clone 项目啦,在命令提示符下执行,会提示要求输入 SSH 用户 gitserver 的密码:

git clone gitserver@127.0.0.1:../../var/project.git project.git
注意不能采用如下方式,可能是因为权限的问题:

git clone gitserver@127.0.0.1:/var/project.git project.git
提示错误如下:
fatal: '/var/project.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

添加公匙

这没有达到预期目标,只是我尝试的印记。

创建密匙

用的工具是:ssh-keygen,因为我电脑上装了 MinGW 和 Git-Bash,有如下两种情况:

用 which 命令查看 ssh-keygen 命令,msys 中命令路径是:
d:/MinGW/msys/1.0/bin/ssh-keygen.exe

MsysGit 中路径是:
/bin/ssh-keygen

注意应该在 Git-Bash 中执行。

1. 输入文件路径,同时在路径中包含文件名,例如:
/d/SSH/tmp/jack

2. 输入密码,两次
green

还未尝试过的新的方式:ssh-keygen -C "你的email地址"  -t rsa

多用户管理

这篇文章比较完善、简单地介绍了linux下搭建多用户操作的功能:http://blog.youkuaiyun.com/jixiuffff/article/details/5968929

为了模拟多个用户的情况,直接在用户管理中添加了 user1 和 user2 两个用户。并用copssh激活这两个用户,现在才明白,激活用户时,输入密码就是为了生成用户的公匙和私匙。信息如下:

user1:gituser1
user2:gituser2

虽然在 windows 系统下,建好了这几个用户,但不像文章中提到的那样,在 gitserve 用户中,添加了 user1 和 user2 的公匙,然后能够在 user1 命令行时,重新登录到 gitserver,但是此时输入的密码依然是 gitserver 的密码,那添加公匙有什么意义呢?

先不研究了,可能 windows 下不太好搭建这样的环境。暂时还是从界面中 pull 最新内容好了。

最后

虽然,添加公匙部分没有搭建好,但是,远程库还是搭建起来,以后就在这这里尽情地练习 git 命令吧。





### 如何在 Windows 系统上搭建 Git 服务器 #### 下载并安装必要的工具 为了在 Windows 上成功搭建 Git 服务器,需要先下载并安装 JDK 和 Git 工具。JDK 是 Java 开发环境的一部分,而某些 Git 服务端软件(如 Gitblit)依赖于它来运行[^1]。 #### 安装和配置 Gitblit Gitblit 是一种轻量级的 Git 服务解决方案,适合用于小型团队或个人项目开发。按照教程中的说明完成 Gitblit 的下载、解压以及基本配置文件编辑工作之后,可以通过命令行或者将其作为后台服务启动[^2]。 对于希望简化日常管理流程的情况来说,把 Gitblit 注册成 Windows 本地服务是一个不错的选择。这样即使计算机重启也能自动开启该服务而不必手动执行脚本文件 `gitblit.cmd` 来启动程序。 另外还有一种更现代化的方式——使用 Gogs (Go Web Server),这是一种基于 Go 编程语言实现的开源版本控制系统托管平台。相比起传统的做法而言,Gogs 提供了一个更加直观易用界面给用户操作,并且支持多种数据引擎连接选项比如 SQLite3, MySQL 或 PostgreSQL 等[^3]。 以下是通过 Gitblit 设置的一个简单例子: ```batch @echo off set JAVA_HOME=C:\Program Files\Java\jdk-version "%JAVA_HOME%\bin\java.exe" -jar gitblit.jar --baseFolder C:/path/to/gitblit/data --port 8080 pause ``` 上述批处理文件定义了 JAVA_HOME 变量指向已安装好的 jdk 版本路径;接着调用了 java 命令加载 gitblit.jar 文件指定基础目录位置与监听端口号参数最后加上 pause 防止窗口关闭。 #### 测试您的新 Git 服务器 一旦完成了所有的前期准备工作以后就可以尝试克隆远程仓验证整个过程是否顺利无误。打开浏览器输入 http://localhost:8080 访问默认页面确认一切正常运作即可开始正常使用自己的私有代码啦! ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值