User-Profile-Image
hankin
  • 5
  • Java
  • Kotlin
  • Spring
  • Web
  • SQL
  • MegaData
  • More
  • Experience
  • Enamiĝu al vi
  • 分类
    • Zuul
    • Zookeeper
    • XML
    • WebSocket
    • Web Notes
    • Web
    • Vue
    • Thymeleaf
    • SQL Server
    • SQL Notes
    • SQL
    • SpringSecurity
    • SpringMVC
    • SpringJPA
    • SpringCloud
    • SpringBoot
    • Spring Notes
    • Spring
    • Servlet
    • Ribbon
    • Redis
    • RabbitMQ
    • Python
    • PostgreSQL
    • OAuth2
    • NOSQL
    • Netty
    • MySQL
    • MyBatis
    • More
    • MinIO
    • MegaData
    • Maven
    • LoadBalancer
    • Kotlin Notes
    • Kotlin
    • Kafka
    • jQuery
    • JavaScript
    • Java Notes
    • Java
    • Hystrix
    • Git
    • Gateway
    • Freemarker
    • Feign
    • Eureka
    • ElasticSearch
    • Docker
    • Consul
    • Ajax
    • ActiveMQ
  • 页面
    • 归档
    • 摘要
    • 杂图
    • 问题随笔
  • 友链
    • Spring Cloud Alibaba
    • Spring Cloud Alibaba - 指南
    • Spring Cloud
    • Nacos
    • Docker
    • ElasticSearch
    • Kotlin中文版
    • Kotlin易百
    • KotlinWeb3
    • KotlinNhooo
    • 前端开源搜索
    • Ktorm ORM
    • Ktorm-KSP
    • Ebean ORM
    • Maven
    • 江南一点雨
    • 江南国际站
    • 设计模式
    • 熊猫大佬
    • java学习
    • kotlin函数查询
    • Istio 服务网格
    • istio
    • Ktor 异步 Web 框架
    • PostGis
    • kuangstudy
    • 源码地图
    • it教程吧
    • Arthas-JVM调优
    • Electron
    • bugstack虫洞栈
    • github大佬宝典
    • Sa-Token
    • 前端技术胖
    • bennyhuo-Kt大佬
    • Rickiyang博客
    • 李大辉大佬博客
    • KOIN
    • SQLDelight
    • Exposed-Kt-ORM
    • Javalin—Web 框架
    • http4k—HTTP包
    • 爱威尔大佬
    • 小土豆
    • 小胖哥安全框架
    • 负雪明烛刷题
    • Kotlin-FP-Arrow
    • Lua参考手册
    • 美团文章
    • Java 全栈知识体系
    • 尼恩架构师学习
    • 现代 JavaScript 教程
    • GO相关文档
    • Go学习导航
    • GoCN社区
    • GO极客兔兔-案例
    • 讯飞星火GPT
    • Hollis博客
    • PostgreSQL德哥
    • 优质博客推荐
    • 半兽人大佬
    • 系列教程
    • PostgreSQL文章
    • 云原生资料库
    • 并发博客大佬
Help?

Please contact us on our email for need any support

Support
    首页   ›   More   ›   Git   ›   正文
Git

Git关联远程仓库—5

2020-05-31 00:38:09
1383  0 0
参考目录 隐藏
1) 配置 SSH KEY
2) 1.查看本地是否已有 SSHKEY
3) 2.生成 SSH 指纹
4) 3.添加 ssh 到 ssh-agent 中
5) 4.将公钥告诉 GitHub
6) 创建远程仓库
7) 关联远程仓库
8) 推送到远程仓库
9) 推送到master分支
10) 推送到其他分支
11) 从远程仓库获取
12) 首次获取
13) 从远程仓库更新

阅读完需:约 6 分钟

上一篇Git文章:

Git分支管理—4

前面我们介绍的所有操作都是在本地仓库完成的,本文我们主要来看看如何和远程仓库进行交互

配置 SSH KEY

SSH KEY 的配置不是必须的,不配置的话我们就只能使用 HTTPS 协议,这样每次提交时要输入用户名密码,略麻烦,所以还是配置一下。配置 SSH KEY 的原理很简单,采用非对称加密方式生成公钥和私钥,公钥告诉 GitHub ,私钥留在自己电脑上(私钥不可泄露),当我们向 GitHub 上提交数据时,GitHub 会用我们留给它的公钥加密一段消息返回给我们的电脑,如果我们能够用私钥解密成功,说明是合法的用户,这样就避免我们输入用户名密码了。大致的原理就是这样,现在很多免登录的系统都采用了这种方式,比如 Hadoop 免登录配置也是这样。那我们就来看看这个 SSH KEY 要怎么生成。  

1.查看本地是否已有 SSHKEY

查看当前用户目录下是否有 .ssh 文件,如下:

如果查看之后有结果,则直接跳转到第四步,什么都没有就继续生成。

2.生成 SSH 指纹

生成 SSH 指纹的命令很简单,如下:

ssh-keygen -t rsa -b 4096 -C "你的邮箱地址"

注意邮箱地址要替换。

3.添加 ssh 到 ssh-agent 中

执行如下命令即可:

eval "$(ssh-agent -s)"

OK,做好这一切之后,我们当前用户目录下已经有了一个名为 .ssh 的隐藏文件夹了,打开这个目录,会发现有一个名为 id_rsa.pub 的文件,这就是我们一会要使用的公钥文件。

4.将公钥告诉 GitHub

登录 GitHub ,点击右上角的向下的箭头,选择 Settings ,在新打开的页面中左边侧栏选择 SSH and GPG keys ,如下:

完了之后点击最下面的 Add SSH key 按钮即可,如此之后,我们的 SSH KEY 就配置成功了。

创建远程仓库

接下来我们在 GitHub 上创建一个仓库,登录成功之后,直接点击右上角绿色的 New repository 按钮,如下:

其实这里我们只需要填一个版本仓库的名字,我填了 test,填好之后,点击 Create repository 就 OK 了。

关联远程仓库

创建成功之后,我们会看到仓库的地址,如下: `git@github.com:lenve/test.git` ,然后我需要将我们之前的本地仓库和这个远程仓库进行关联,使用 git remote add 命令,如下:

$ git remote add origin git@github.com:lenve/test.git

在这条命令中,git 会自动将远程仓库的名字设置为 origin ,方便我们的后续操作。

推送到远程仓库

推送到master分支

假设我想将本地 master 分支上的内容推送到远程 master 分支上,方式如下:

$ git push -u origin master

-u参数可以在推送的同时,将 origin 仓库的 master 分支设置为本地仓库当前分支的 upstream(上游)。添加了这个参数,将来运行 git pull 命令从远程仓库获取内容时,本地仓库的这个分支就可以直接从 origin 的 master 分支获取内容,省去了另外添加参数的麻烦。这个参数也只用在第一次 push 时加上,以后直接运行 git push 命令即可。

推送到其他分支

如果想推送到其他分支,还是这条命令,修改一下分支的名字即可,比如我也想把我的 fa 分支推送到远程仓库中,执行如下命令:

$ git checkout fa
$ git push -u origin fa

先切换到 fa 分支,然后执行 git push 命令,参数含义和之前的一样,这里我们创建的远程仓库的分支名也为 fa(当然我们可以取任何名字,但是为了不混淆,最好取一致的名字)。这两条命令执行成功之后,此时在网页中我们就可以看到已经有多个分支了,如下:

从远程仓库获取

首次获取

刚刚是我们向远程仓库提交数据,有提交当然就有获取,我们可以通过 git clone 命令克隆一个远程仓库到本地,方式也简单,在本地创建一个空文件夹,执行如下命令:

$ git clone git@github.com:lenve/test.git

表示克隆文件到本地仓库。此时克隆的远程仓库的 master 分支到本地仓库,我们可以通过 git branch -a 来查看本地仓库和远程仓库的信息,-a 参数可以同时显示本地仓库和远程仓库的信息,如下:

我们看到远程仓库中已经有了 fa 分支了,如果我们想把 fa 分支也克隆下来,执行如下命令:

$ git clone git@github.com:lenve/test.git

表示根据远程仓库的 fa 分支创建一个本地仓库的 fa 分支,创建完成之后进行切换,也可以通过如下命令只创建不切换:

$ git branch fa origin/fa

此时我在 fa 分支下修改 git01.txt 文件并提交,如下:

注意由于 fa 分支就是从远程仓库克隆下来的,所以这里可以不添加 -u 参数。

从远程仓库更新

此时我们回到第一次最早的那个 test 本地仓库中,那个 test 仓库的 fa 分支现在和远程仓库不一致了,我们可以通过 git pull 命令来更新,如下:

Ok,关联远程仓库我们先说这么多。

如本文“对您有用”,欢迎随意打赏作者,让我们坚持创作!

0 打赏
Enamiĝu al vi
不要为明天忧虑.因为明天自有明天的忧虑.一天的难处一天当就够了。
543文章 68评论 294点赞 594470浏览

随机文章
SpringSecurity—AbstractAuthenticationProcessingFilter 源码解析
5年前
Java 关于时间的操作
5年前
Mybatis—Mapper补充
5年前
Redis笔记—List列表与Set集合
5年前
vue中路由传参
5年前
博客统计
  • 日志总数:543 篇
  • 评论数目:68 条
  • 建站日期:2020-03-06
  • 运行天数:1927 天
  • 标签总数:23 个
  • 最后更新:2024-12-20
Copyright © 2025 网站备案号: 浙ICP备20017730号 身体没有灵魂是死的,信心没有行为也是死的。
主页
页面
  • 归档
  • 摘要
  • 杂图
  • 问题随笔
博主
Enamiĝu al vi
Enamiĝu al vi 管理员
To be, or not to be
543 文章 68 评论 594470 浏览
测试
测试
看板娘
赞赏作者

请通过微信、支付宝 APP 扫一扫

感谢您对作者的支持!

 支付宝 微信支付