sourceTree,将代码上传到github AND 添加SSH keys 从GitHub或码云Clone

准备

  1. 在GitHub注册账号
  2. 下载sourceTree客户端

正文

1. 在GitHub创建仓库

New repository.png

New repository input.png

2. 克隆仓库

克隆的方式有两种 
1. Use HTTPS
2. Use SSH

第一种比较方便直接复制粘贴就行

clone use HTTPS.png

使用第二种需要添加ssh密钥, 因为本地的git仓库和Github服务器之间是通过ssh加密的
Colne use ssh.png

3. 使用sourceTree把仓库克隆到本地
3.1 克隆
create.png

clone use ssh remind.png

clone success.png

3.2 提交
commit.png

see repository.png

PS: 添加SSH keys

1. 生成SSH密钥
1.1 终端中执行如下命令,进入.ssh文件夹,查看是否已经有了ssh密钥; 如果没有密钥则不会有此文件夹,有则备份删除:

cd ~/.ssh

2. 生成公钥

ssh-keygen -t rsa
//这里是输入文件名,直接回车的话,则使用默认名id_rsa。
Enter file in which to save the key (/Users/rason/.ssh/id_rsa):
//这里是输入密钥密码,直接回车的话,密码为空。
Enter passphrase (empty for no passphrase):
//这里是再次输入密钥密码,直接回车的话,密码为空。该密码就是使用该密钥所需要输入的密码。
Enter same passphrase again:

看到如下提示,说明已经生成成功。

Your identification has been saved in /Users/rason/.ssh/id_rsa.
Your public key has been saved in /Users/rason/.ssh/id_rsa.pub.
The key fingerprint is:
………………

3. 查看并复制公钥

cat id_rsa.pub
seeKey.png

4. 添加公钥
4.1 打开GitHub的setting页面

settings.png

4.2 将刚刚复制的公钥粘贴到key中
add ssh keys.png

5. 测试是否连接成功

ssh -T git@github.com

有以下信息,说明已经成功。

success.png

PS: 上述申请的公钥同样可拥有开源中国--码云的ssh keys
在修改个人资料中选择ssh公钥
add key.png

输入命令查看上述申请的公钥并复制粘贴到添加公钥的输入框中

cat ~/.ssh/id_rsa.pub

添加后,在终端(Terminal)中输入

ssh -T git@git.oschina.net

若返回

Welcome to Git@OSC, yourname!

则证明添加成功。


os china ssh key.png

至此就可以Use SSH从GitHub和码云clone项目了

os china clone.png

SourceTree 一直提示输入密码问题

一、系统更新问题

项目是走ssh克隆下来的,之前也配置过密钥。按理来说不应该出现这样的问题,在日常开发过程中突然需要我输入密码?
在经过多方面资料查找与解决方案尝试后终于找到了原因,背后的黑手是系统升级了,在升级为macOS catlina后 ssh的代理就被自动清除了,所以重新添加一下就好了

步骤:

1、在控制台输入 【ssh-add -L】,控制台会显示如下:

$ ssh-add -L
The agent has no identities.

2、再执行一次【ssh-add】,然后输入电脑密码就好了,成功后会展示你本机的ssh密钥。控制台显示如下:

Enter passphrase for /Users/macName/.ssh/id_rsa:输入电脑密码

Identity added: /Users/macName/.ssh/id_rsa (/Users/macName/.ssh/id_rsa)

3、最后再次执行git命令则无需输入密码了。

二、SourceTree自身问题

问题: 不管输入哪个密码都是一直循环提示需要输入密码,并且也确认在github上添加过ssh key。

解决办法:

先在命令行git clone一次之后,再重新使用SourceTree进行克隆就没有问题了,后面就可以随意使用SourceTree进行克隆其他项目。
不止github.com,code.aliyun.com也可能出现该问题,同样的解决办法处理即可。

原因: git clone 一次之后会在.ssh/known_hosts中记录ssh key。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,168评论 19 139
  • 一、创建github repository(仓库) 1-1 登录github github的官方网址:https:...
    字短情长阅读 1,442评论 0 0
  • Git(分布式版本控制系统) Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。G...
    Jens丶阅读 6,350评论 32 121
  • 最近在研究如何把代码提交到github上的仓库里,在网上查了不少文章,介绍的都不是清楚,现在把自己试验成功的流程记...
    皇马船长阅读 1,326评论 1 3
  • 他跪倒在菩萨面前 嘴里念叨一阵 然后做出胸有成竹的表情 站起来对菩萨作了个揖 转身走出门去 殿里的观音 作了一个手...
    吻章阅读 177评论 0 0