本地仓库和远程仓库通讯的两种方式:https和ssh

1.使用https通信:

  • 公有仓库,用户B具有仓库A的克隆(只读)权限,没有push(修改)等权限;克隆时,用户B要输入自己的用户和密码进行身份识别(登录网站的用户名和密码);
  • 私有仓库,非仓库拥有者(管理者、开发者等)没有权限进行访问(无法clone,push,pull等权限);输入用户B的用户名和密码后,报错如下:

remote: longelong: Incorrect username or password (access token)

fatal: Authentication failed for 'https://gitee.com/machel_du/learn_js.git/'

使用https通信的文件中的.git目录下的config文件中:

2e2564445cd61e36f566ba4db5ad10e6.png

2.使用ssh通信:

ssh协议就相当于是加密后的一种身份识别机制,相当于接头暗号。详情https://www.jianshu.com/p/cab7e436a7aa;

可以避免使用https通信带来的在clone和push等仓库操作时,要输入用户名和密码的多余操作;

用ssh通信的文件中的.git目录下的config文件中:

cfbbad8225c5bc2b8500fcb73ea73754.png

2.1个人ssh

4d76d26aa7eebe99931470413280d43f.png

⭕说明:当在个人ssh中添加了某台机器生成的ssh key(公钥),这该机器就有这个改用户所有仓库下的所有访问权利;

2.2仓库ssh

5c8dae411c14a900c3a88b6a304f4ee9.png

⭕说明:给某个仓库添加某机器生成的公钥后,改机器具有clone和pull该仓库的权利,但是没有push的权利。

2.3操作ssh公钥命令(git bash);

1.生成ssh公钥:

ssh-keygen -t rsa -C “xxxxx@xxxxx.com”

9ef4bbef0d7535c6712f4c3f2bcbf507.png

2.查看ssh公钥:

cat ~/.ssh/id_rsa.pub

如何区分我们使用的https方式还是ssh方式跟git server交互的呢?在git bash里边输入 本地就会生成以ssh-rsa 开头,以账号的注册邮箱结尾的公钥,然后就可以添加到对应账号的个人公钥或者仓库公钥中去;

3.查看是否添加成功;

ssh -T git@gitee.com

3.使用小技巧

  • 如何区分我们使用的https方式还是ssh方式跟git server交互的呢?在git bash里边输入 :

git remote -v

6e8bec87546ea76863fbd19fef0e169c.png
  • 在仍使用https通信时,如何有效的减少用户名和密码的输入——通过设置用户名和密码的缓存时间:

git config –global credential.helper store

这个是长期存储密码。

当然也可以设置缓存密码多久

git config –global credential.helper cache

设置记住密码(默认15分钟)

如果想自己设置缓存时间,可以这样做:

git config credential.helper ‘cache –timeout=3600’

这样就设置一个小时之后失效。上面的命令操作其实是被记录到 ~/.gitconfig 文件中了

c6cf713d1d78be298046c669511b4f58.png
  • https://gitee.com/help——码云帮助文档
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐