在 Windows 上使用 CopSSH + msysGit 设置 Git 服务器并集成 Git 与 Visual Studio 的分步指南






4.80/5 (10投票s)
使用 CopSSH + msysGit 在 Windows 上设置 Git 服务器并将其集成到 Visual Studio。
首先,我需要说明的是,Git 不需要区分客户端和服务器端。你的工作站可以同时作为客户端和服务器。这意味着你可以从其他计算机获取代码(此时你就是客户端);其他人也可以从你的计算机获取代码(此时你就是服务器)。这就是 Git 的强大之处。
在本教程中,“Git 服务器”指的是让你的计算机可供他人从中拉取/推送代码。
这篇教程内容较长,因为它包含详细的分步指导和大量截图。实际上,整个设置过程大约只需要 10 分钟。
注意:CopSSH 已不再是开源软件,如需使用请购买。
我们需要以下软件
设置 Git 服务器所需的软件
CopSSH (安装在服务器端)
msysgit (安装在服务器端和客户端)
PuTTY (安装在服务器端和客户端)
集成 Visual Studio 所需的软件
GitExtensions (安装在服务器端和客户端)
设置步骤
1. 安装 msysgit。
a. 安装 msysgit 时,请选择 c:\Git 作为安装目录,因为目录名称中的空格可能会导致 bash 命令出现问题。
b. 在“调整 PATH 环境变量”选项中,我建议选择“仅使用 Git Bash”。
c. 其他设置保持默认。安装完成后,你会在桌面上看到图标。你可以尝试使用 git 命令,如果出现以下屏幕,说明 msysgit 已成功安装。
d. 将 **C:\Git\bin** 和 **C:\Git\libexec\git-core** 添加到 Path 环境变量。这一步非常重要。
2. 安装 CopSSH
a. 与 msysgit 类似,为避免一些空格问题,我们不将 CopSSH 安装在“Program Files”文件夹中。我们将其安装在 **c:\ICW**。
d. 在“用户”选项卡中,点击 **Add** (添加) 按钮。
e. 选择你计算机上已存在的用户(你可以在计算机管理中创建一个)。在我的示例中,用户是 **jinweijie**。
g. 用户激活后,在“激活用户”部分点击 **Keys…** (密钥…) 按钮。
k. 私钥将保存在 **c:\ICW\home\jinweijie\ryan-vm-01_2048.ppk**。
[测试步骤] 现在我们尝试使用激活的用户通过 SSH 登录。打开 Git Bash,输入以下命令:
ssh jinweijie@ryan-vm-01
输入“yes”继续。
[测试步骤] 输入你的密码(Windows 账户的密码)后,尝试以 SSH 用户身份运行 git 命令,但结果可能不符合预期。
这是因为 CopSSH 找不到服务器上的 git.exe,所以我们需要告知 CopSSH Git 的路径。
3. 配置 CopSSH 以包含 Git 路径。
a. 使用你喜欢的编辑器打开 **C:\ICW\etc\profile**,在 **PATH** 中添加 `:/cygdrive/c/git/bin:/cygdrive/c/git/libexec/git-core`(不要忘记开头的冒号)。整行将是:
export PATH="/bin:$syspath:$winpath:/cygdrive/c/git/bin:/cygdrive/c/git/libexec/git-core"
然后保存。
b. 在 CopSSH 控制面板中双击最大的按钮,重启 CopSSH 服务。
c. 如果我们再次运行 **Git Bash**,执行 `ssh jinweijie@ryan-vm-01`,输入密码并运行 **git 命令**,这次应该能找到 git 了。
4. 在客户端配置私钥
a. 将私钥(我们在步骤 **1-k** 中生成的)从服务器复制到客户端。
b. 在 **客户端**,使用 **puttygen.exe** 加载私钥(如果在 **1-j** 中设置了密码,加载密钥时需要输入密码)。
c. 点击“Save private key”(保存私钥),保存一份私钥副本,以便 plink.exe 识别。
5. 创建仓库,集成 Visual Studio
a. 在服务器和客户端都安装 **gitextensions**。
b. 由于我们在步骤 1-a 中已经安装了 msysgit,这里跳过“安装 MsysGit”。但如果你尚未在客户端安装 msysgit,可以勾选该选项并进行安装。
c. 安装到 **C:\GitExtensions\**,其他设置保持默认。
d. **在服务器端**,打开 Git Extensions,点击“Create new repository”(创建新仓库)。
e. 将路径设置为 **CopSSH 用户家目录下的项目名称**,选择“**Central repository, no working dir**”(中心仓库,无工作目录)(因为我们是服务器),然后点击“**Initialize**”(初始化)。
f. **在客户端**,打开 Git Extensions,点击“Clone repository”(克隆仓库)。
g. **在客户端**,仓库地址应为 **ssh://jinweijie@ryan-vm-01/ICW/home/jinweijie/mydotnetproject**。请注意,在服务器上,仓库路径应该以 c:\ 开头。
h. **在客户端**,点击“Load SSH Key”(加载 SSH 密钥),并加载在步骤 **4-b** 中保存的密钥。
i. **在客户端**,如果为密钥设置了密码,输入密码,然后点击 **Clone**(克隆)。
k. **在客户端**,打开 Visual Studio,在 mydotnetproject 文件夹(即已克隆的仓库)中创建一个项目。你可能会发现文件已在 Git 版本控制之下。
l. 点击菜单栏上的“Commit”(提交)按钮,然后点击“Commit & Push”(提交并推送)。
就这样,祝你 Gitting 愉快!