跳至正文

如何使用Sourcetree管理Gitee与Github仓库


前言

Git图形化工具简介与Sourcetree安装教程 – 徐晓康的博客 (myhardware.top)

前文已经说明了Git图形化工具Sourcetree的优点,本文将介绍如何使用此工具管理Gitee/Github中的仓库,实现远程仓库的克隆与更新。

另外,建议设置Gitee与Github双向同步,这样你就只需要管理Gitee就够了,Github上的仓库会自动同步,不需要再担心网络问题了。

相关设置步骤可参考:如何设置Gitee与Github双向同步 – 徐晓康的博客 (myhardware.top)


一. 克隆远程仓库

1.1 Gitee仓库

打开Gitee/Github仓库界面 → 点击克隆/下载按钮 → 选择HTTPS或SSH → 复制链接。

打开Sourcetree → Clone → 输入HTTPS或SSH链接 → 选择一个空白文件夹 → 克隆。

1.2 Github仓库

(如果是克隆自己的仓库,最简单的是在Sourcetree中添加Github账户,参考1.3中的第5点)

在Sourcetree中使用HTTPS去克隆Github仓库,可能会报错,报错信息:这是一个无效的源路径/URL,如下图所示。(如果使用SSH,那可能这个问题解决不了,SSH不能使用代理,这意味着很多时候用SSH无法访问Github,所以建议使用HTTPS)

原因分析:此仓库是公开仓库,所有人应该都能够访问并且Clone此仓库,此处报错最大的可能是网络问题,因为Github经常需要科学上网才能正常访问,但出问题时我在网页是能够正常访问此仓库的;另一个可能就是Git自身的问题,可能需要某些设置,才能让Git能用上系统代理,能够去访问Github

解决办法:在Sourcetree中,工具 → 选项 → 网络,勾选向Git/Mercurial配置文件中添加代理服务器信息,如下图所示。

勾选此项后,就是会向Git的全局配置文件,即Hone环境变量所指向的目录下的.gitconfig文件,添加代理服务信息,如下图所示。

然后再使用HTTPS去克隆Github仓库就一切正常了,如下图所示。

1.3 其它可能有效的解决办法

如果上述方法不起作用,Sourcetree仍然报错无效的源路径/URL,网上还提供了各种其解决办法,建议按顺序逐条尝试,汇总如下:

  1. Sourcetree中,工具 → 选项 → 勾选禁用SSL证书验证,如下图所示。

  1. Git版本使用嵌入式版本即Embedded,如上图所示。

  2. 删除电脑中的Sourcetree、Git和Github的相关凭据,控制面板 → 凭据管理器 → 删除相关凭据。

  1. 在Sourcetree中使用OpenSSH作为SSH客户端,并指定SSH私钥,如下图所示。注意在Github中添加对应公钥,对于SSH秘钥,本博文的第二章有详细说明。

  1. 在Sourcetree中添加Github账户,步骤如下:添加一个账户,验证选择OAuth,刷新OAuth令牌 → 授权 → 认证成功。此时就应该能在Remote中看到Github账户中的仓库了,包括公开的和私有的。




二. 推送本地仓库改动到远程仓库

本地改动需要先暂存,再提交到本地仓库后,才能推送。

2.1 生成SSH公钥和私钥

参考:SSH 公钥设置 | Gitee 帮助中心

打开Windows PowerShellGit Bash,输入以下代码。

ssh-keygen -t ed25519 -C "Gitee SSH Key"
  • -t key 类型,ed25519类型的秘钥生成速度很快
  • -C 注释,不影响秘钥生成,可不加

再按三次Enter键即生成SSH秘钥,如下图所示。

密钥指纹 (Key Fingerprint):是一个密钥的哈希值,可以用来验证你的SSH公钥的身份。

随机艺术图像 (Randomart Image):是另一个用来视觉验证SSH公钥身份的方法,此图像对于每个不同的密钥都是独特的。

如何使用这些信息?当你要向其他人分享你的公钥时,也可以分享这些信息,以便他们能够验证公钥的正确性。

例如,如果你想确认你正在连接的服务器拥有正确的SSH公钥,你可以请求查看该服务器的密钥指纹,并将其与已知的指纹进行比较。如果它们匹配,那么你就可以确信你正在连接的是正确的服务器,更多信息可参考Gitee SSH 密钥指纹 | Gitee 帮助中心

注意,秘钥生成的位置,就是PowerShell中运行命令的目录,如下图所示。

带pub后缀的是公钥,这个秘钥可以公开,也需要提供给Gitee或者Github;

另一个是私钥,这个保存在本地,不能提供给其它人

2.2 在Gitee或Github中添加公钥

登录Gitee → 头像,设置 → SSH公钥 → 添加公钥,设置标题,粘贴公钥 → 确定。

注意,公钥的格式:ssh-加密算法名称 AABG.... 任意说明(可省略),这三者之间间隔一个空格。

Github中添加公钥操作几乎一样,如下图所示。

2.3 在Sourcetree中添加私钥,并设置同远程仓库一样的用户名和邮箱地址

在Sourcetree中,工具 → 选项 → 一般 → 设置Git用户名和邮箱(保持与Gitee或Github中的一致)→ 设置SSH,客户端选择OpenSSH,秘钥选择之前生成的私钥。

Gitee支持用户名为中文,所以我上图中用户名为徐晓康,且我的Gitee中设置了不公开邮箱地址,所以提交邮箱并不是登录Gitee的邮箱,而是Gitee自动生成的一个邮箱地址,可在Gitee的账户设置中查看,如下图所示。

对于Github,如果也设置了不公开邮箱,那么建议使用Github自动生成的邮箱进行推送,当然真实邮箱也可以,但这样其它人通过提交记录可以看到你的真实邮箱,隐藏邮箱就失去意义了。


2.4 推送到Gitee或Github

推送到Gitee,第一次需要填用户名和密码,密码建议填Token,隐私性更好,如下图所示。

推送到Github,第一次需要验证身份,推荐使用Token进行验证,隐私性更好。


三. SSH客户端使用PuTTY / Plink

Sourcetree默认使用的SSH客户端为PuTTY / Plink,可以利用它生成秘钥,和使用PowerShell或Git Bash效果是一样的,但并不推荐,因为PuTTY Key Generator生成秘钥太慢了,大概需要等半小时。

3.1 PuTTY / Plink生成秘钥

SSH客户端选择PuTTY / Plink,工具 → 创建或导入SSH密钥 → Generate → 等半小时 → Save public key,保存公钥 → Save private key,保存私钥。


3.2 修改公钥格式

公钥格式如下:

此格式无法直接复制到Gitee或Github中,需要做如下更改,如下图所示。使其满足正确的公钥格式:ssh-加密算法名称 AABG.... 任意说明(可省略),这三者之间间隔一个空格。

后续在Gitee或Github中添加公钥操作一样。

3.3 私钥ssh-ed25519格式转RSA格式

如果用PowerShell或Git bash生成了ssh-ed25519格式的秘钥,而SSH客户端选择PuTTY / Plink,则需要将私钥转为ssh-rsa格式,步骤如下:


之后就会生成后缀为.ppk的私钥,可用于PuTTY / Plink SSH客户端。


四. 总结

本文介绍了如何使用Sourcetree的使用方法:

  1. 将远程仓库克隆到本地,克隆Gitee仓库非常简单,克隆Github则要注意网络/代理问题。

  2. 推送本地改动到远程仓库,主要就是要生成SSH秘钥对,公钥添加到Gitee和Github中,私钥添加Sourcetree,以及在第一次推送时输入对应的Token。

Sourcetree工具界面直观,支持中文,功能强大,熟练使用后基本可以告别手输Git命令,推荐使用。


如果本文对你有所帮助,欢迎点赞、转发、收藏、评论让更多人看到,赞赏支持就更好了。

如果对文章内容有疑问,请务必清楚描述问题,留言评论或私信告知我,我看到会回复。


徐晓康的博客持续分享高质量硬件、FPGA与嵌入式知识,软件,工具等内容,欢迎大家关注。

0 0 投票数
文章评分
订阅评论
提醒
0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x
目录