如何安装/设置TortoiseGit以与GitHub配合使用

32

我刚刚安装了Git For Windows,并使用Cygwin通过SSH创建了我的SSH密钥。它似乎在命令行和Git For Windows GUI中工作正常,但现在我想要使用TortoiseGit。TortoiseGit默认使用类似Putty的SSH客户端,但明显GitHub只接受(open)SSH,并且我不知道该如何继续。我将进行一个干净的TortoiseGit安装,我已经安装了Cygwin和Git for Windows。

5个回答

40

如果您想将现有的 TortoiseGit 安装更改为使用 PuTTY 而不是 OpenSSH,只需右键单击 -> TortoiseGit -> 设置 -> 网络,然后将“ssh.exe”更改为“tortoiseplink.exe”。从那时起,执行推送/拉取操作应该使用 Pageant(以及您在其中设置的任何密钥),如果您也在运行它。


6
这是“TortoiseGitPLink.exe”(对我来说)。 - vsync

9
最简单的方法是先安装TortoiseGit,然后再安装msysgit,并将SSH客户端设置为TortoisePLink。使用TortoiseGit Puttykey生成器创建一个新的密钥对,并将您的公钥添加到GitHub中。
克隆/创建一个新的存储库。在Tortoise存储库设置中,设置您的全名和电子邮件地址。然后在Git配置菜单下的远程菜单中输入您的克隆URL并选择您的PuTTY密钥。GitHub与PuTTY密钥完全兼容。我有使用它的朋友,我自己也用过。

在安装后更改msysgit以使用TortoisePLink是否可能?如果可以,那么如何操作-然后我就可以创建一个新的putty密钥。 - Mr. Boy
你可以执行 cd ~ ; echo "GIT_SSH = "c:/path/to/tortoiseplink.exe"" > .profile,这样应该可以工作,但是最好进行干净的重新安装,并使用不带Tortoise Git或Plink的OpenSSH。 - Learath2
我卸载了应用程序以进行干净的安装 - 但是当我这次安装 Git for Windows (msysgit) 时,我没有看到询问 SSH 可执行文件的步骤。可能留下了一些设置,我检查了主 git 目录已被删除 :( - Mr. Boy
请检查环境变量或尝试我提供的其他解决方案。 - Learath2
SSH的值可以留在C:\Documents and Settings\<user>\.ssh\中 - 这是我的位置,与Git for Windows(卸载)是分离的。 - Philip Oakley

3

1) Cygwin

使用本文所描述的方法:使用SSH密钥口令

在Cygwin会话启动时只会询问一次口令。 !!! 退出Cygwin会话前别忘记杀死ssh-agent进程(使用ps找到进程PID并执行kill -9命令)。

我们为Cygwin使用独立的方法,因为某些原因Cygwin无法看到在Windows环境下外部启动的进程。

2, 3) MsysGit, TortoiseGit

有用的链接: http://dogbiscuit.org/mdub/weblog/Tech/WindowsSshAgent

安装MsysGit。 安装TortoiseGit(安装过程中选择openssh而不是plink)。 !!! 检查系统变量。如果存在GIT_SSH变量,请将其删除。

转到TortoiseGit ->设置 ->常规

将Git EXE路径设置为<MsysGit主目录>/bin。 将外部DLL路径设置为<MsysGit主目录>/mingw/bin。

转到TortoiseGit ->设置 ->网络。 将SSH客户端属性设置为<MsysGit主目录>/bin/ssh.exe。

定义系统变量SSH_AUTH_SOCKS=C:\temp.ssh-socket

启动cmd.exe并执行以下命令(由于我们安装了MsysGit,所有以下命令都可以在cmd中访问——<MsysGit>/bin已添加到系统PATH变量中):

# The following command is required to execute for avoiding an address already bind message when ssh-agen is not started yet but .ssh-socket exists after previous agent session
rm "%SSH_AUTH_SOCK%"

# Starting ssh-agent
ssh-agent -a "%SSH_AUTH_SOCK%"

# Adding our openssh key
ssh-add "%USERPROFILE%\.ssh\id_rsa"

# Type password for your key

就是这样。从那一刻起,您可以执行git pushgit pull,而无需输入密码提示符,使用TortoiseGit和MsysGit。

当不再需要ssh-agent时,可以通过Windows任务管理器将其关闭。


1
这篇文章介绍的Ed Goad的视频帮了我很多。它展示了如何设置PAS令牌并将其配置为git.exe和TortoiseGit。
视频中的步骤包括:
  1. 从GitHub个人资料设置|开发者设置|个人访问令牌创建PAS。
  2. 复制您的PAS
  3. 运行一些命令:
  4. git config --global user.name 'yourUser'
  5. git config --global user.email 'youremail@domain.com'
  6. git clone https://location/of/repo
  7. 'https://github.com'的用户名:yourUser
  8. 'https://yourUser@github.com'的密码:在这里粘贴您的PAS,而不是您的真实密码。

0

这个解决方案是由Anmol Jain提供的,对我来说非常完美。他发布了适用于Source Tree的解决方案,也适用于Tortoise Git。

步骤:

  1. 从GitHub Enterprise中复制要克隆的https链接
  2. 在本地机器上,在Tortoise Git中--> git clone --> 在URL中进行如下设置 http://@git.example.com/BTS/fp-pro-license.git/ORG1/spring-project.git 这样你就可以克隆了

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接