Fork me on GitHub

Git| Github 与 Gitlab服务

 

Github与Gitlab的使用

1. 生成ssh key

ssh key 默认生成后保存在 ~/.ssh/目录下 ,默认为 id_rsa 和 id_rsa.pub 两个文件,由于我们需要分开配置,所以这么做:

#1. 生成gitlab的公钥、密钥的同时指定文件名,Gitlab要使用默认地址,即C:\Users\kris\.ssh\id_rsa 即 ~/.ssh/id_rsa
ssh-keygen -t rsa  -C "xxx@xx.cn" -b 4096
回车,回车 #2. 生产github的公钥、秘钥。 ssh-keygen -t rsa -C "xx@126.com"
回车输入地址
~/ssh/id_rsa_github
回车

命令执行完成后,这时~/.ssh目录下会多出id_rsaid_rsa.pubid_rsa.github和id_rsa_github.pub; id_rsa.pub,id_rsa_github.pub 里保存的就是我们要使用的key即公钥,这个key就是用来上传到 Gitlab上的。

公钥上传到服务器,然后再把这个客户端公钥添加到authorized_keys。添加后,服务器就会认为你这个客户端为可信任。即可访问服务器。

 

2. 将公钥public key上传到 Github/Gitlab

以Github为例,过程如下:

  1. 登录github
  2. 点击右上方的Accounting settings图标
  3. 选择 SSH key
  4. 点击 Add SSH key

在出现的界面中填写SSH key的名称,填一个你自己喜欢的名称即可,然后将上面拷贝的~/.ssh/id_rsa_github.pub文件内容粘帖到key一栏,在点击“add key”按钮就可以了。

  

 

 

 

3. 配置 config 文件

在 ~/.ssh目录下,如果不存在,则新建 touch ~/.ssh/config文件 ,文件内容添加如下: 

 (例如gitlab要clone的地址为: ssh://git@git.xxx.io:65508/data-center/dw.git   github要clone的地址为 git@github.com:kris-2018/Datastructures-Algorithms.git 

复制代码
Host gitlab.com
    User xxx
    StrictHostKeyChecking  no
    HostName git.xxx.io
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa
    Port 65508

Host github.com
    User kris-2018
    StrictHostKeyChecking  no
    HostName ssh.github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_github
    #Port 443
复制代码

 配置完成后,符合github.com的 Git仓库,均采取 ~/.ssh/id_rsa_.github 密钥进行验证。

4. 验证是否OK

由于每个托管商的仓库都有唯一的后缀,填写刚刚配置的Host 名称。

$ ssh -T git@github.com
Hi kris-2018! You've successfully authenticated, but GitHub does not provide shell access.

kris@DESKTOP-H9GMG9A MINGW64 ~/.ssh
$ ssh -T git@gitlab.com
Welcome to GitLab, xxx!

看到这些 Welcome 信息,说明就是 OK的了

 

5. 配置 Git 用户名、邮箱

经常使用的可配置全局配置。 

# 团队项目配置,可配置为全局
git config --global user.name 'xxx' 
git config --global user.email 'xxx@cn'
# 在项目中进行局部配置,Github仓库
git config --local user.name 'xxx'  
git config --local user.email 'xxx@126.com'

 

6. 常见问题

如果是从github上pull下的项目,需要看下pull时是按HTTPS 还是ssh 的方式 ; github设置ssh key后push还要输入用户名和密码说明拉取的时候是按Https方式,需要修改下;

因为用的是https而不是ssh,更新origin为ssh格式
HTTPS的格式为:https://github.com/用户名/仓库名.git
SSH的格式为:git@github.com:用户名/仓库名.git

$ git remote remove origin
$ git remote add origin git@xxx.git

再push的时候实际上是采用的SSH方式推送的代码。(打开config文件可以看到[remote "origin"]的url为ssh格式)。

 

 

 

 
posted @   kris12  阅读(241)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
levels of contents
点击右上角即可分享
微信分享提示