65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.80/5 (10投票s)

2013年9月19日

CPOL

4分钟阅读

viewsIcon

102688

使用 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 命令出现问题。
image

b. 在“调整 PATH 环境变量”选项中,我建议选择“仅使用 Git Bash”。
image

c. 其他设置保持默认。安装完成后,你会在桌面上看到图标。你可以尝试使用 git 命令,如果出现以下屏幕,说明 msysgit 已成功安装。
image

d. 将 **C:\Git\bin** 和 **C:\Git\libexec\git-core** 添加到 Path 环境变量。这一步非常重要。
image

2. 安装 CopSSH

a. 与 msysgit 类似,为避免一些空格问题,我们不将 CopSSH 安装在“Program Files”文件夹中。我们将其安装在 **c:\ICW**。
image

b. 使用 CopSSH 提供的默认账户即可:
image

c. 安装完成后,打开 **COPSSH 控制面板**。
image

d. 在“用户”选项卡中,点击 **Add** (添加) 按钮。
image

e. 选择你计算机上已存在的用户(你可以在计算机管理中创建一个)。在我的示例中,用户是 **jinweijie**。
image

f. 允许所有访问。
image

g. 用户激活后,在“激活用户”部分点击 **Keys…** (密钥…) 按钮。
image

h. 点击 **Add** (添加)。
image

i. 使用默认的密钥设置。
image

j. 输入密码短语和文件名。
image

k. 私钥将保存在 **c:\ICW\home\jinweijie\ryan-vm-01_2048.ppk**。
image

[测试步骤] 现在我们尝试使用激活的用户通过 SSH 登录。打开 Git Bash,输入以下命令:
ssh jinweijie@ryan-vm-01
输入“yes”继续。
image

[测试步骤] 输入你的密码(Windows 账户的密码)后,尝试以 SSH 用户身份运行 git 命令,但结果可能不符合预期。
image
这是因为 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"
然后保存。
image

b. 在 CopSSH 控制面板中双击最大的按钮,重启 CopSSH 服务。
image

c. 如果我们再次运行 **Git Bash**,执行 `ssh jinweijie@ryan-vm-01`,输入密码并运行 **git 命令**,这次应该能找到 git 了。
image

4. 在客户端配置私钥

a. 将私钥(我们在步骤 **1-k** 中生成的)从服务器复制到客户端。
SNAGHTMLc1563

b. 在 **客户端**,使用 **puttygen.exe** 加载私钥(如果在 **1-j** 中设置了密码,加载密钥时需要输入密码)。
image

c. 点击“Save private key”(保存私钥),保存一份私钥副本,以便 plink.exe 识别。
image

5. 创建仓库,集成 Visual Studio

a. 在服务器和客户端都安装 **gitextensions**。
image

b. 由于我们在步骤 1-a 中已经安装了 msysgit,这里跳过“安装 MsysGit”。但如果你尚未在客户端安装 msysgit,可以勾选该选项并进行安装。
image

c. 安装到 **C:\GitExtensions\**,其他设置保持默认。
image

d. **在服务器端**,打开 Git Extensions,点击“Create new repository”(创建新仓库)。
image 

e. 将路径设置为 **CopSSH 用户家目录下的项目名称**,选择“**Central repository, no working dir**”(中心仓库,无工作目录)(因为我们是服务器),然后点击“**Initialize**”(初始化)。
image

f. **在客户端**,打开 Git Extensions,点击“Clone repository”(克隆仓库)。
image

g. **在客户端**,仓库地址应为 **ssh://jinweijie@ryan-vm-01/ICW/home/jinweijie/mydotnetproject**。请注意,在服务器上,仓库路径应该以 c:\ 开头。
image

h. **在客户端**,点击“Load SSH Key”(加载 SSH 密钥),并加载在步骤 **4-b** 中保存的密钥。
image

i. **在客户端**,如果为密钥设置了密码,输入密码,然后点击 **Clone**(克隆)。
image

j. **在客户端**,添加忽略文件。
image

k. **在客户端**,打开 Visual Studio,在 mydotnetproject 文件夹(即已克隆的仓库)中创建一个项目。你可能会发现文件已在 Git 版本控制之下。
image

l. 点击菜单栏上的“Commit”(提交)按钮,然后点击“Commit & Push”(提交并推送)。
image

m. 推送成功。
image

n. **在服务器端**,你可以找到新推送的文件。
image

就这样,祝你 Gitting 愉快!

© . All rights reserved.