Git Gui的使用+关于SSH协议和克隆对应文件代码+IDEA集成Git等

news2024/11/25 13:30:09

目录

一、Git图形化界面的使用

1.1 前期准备

1.2 Git图形化界面的使用

1.2.1 文件代码克隆

1.2.2 文件GIt管理效果查看

1.2.3 Git Gui页面详情图解

1.2.4 Git Gui功能演示效果

(1)暂存

(2)提交与注释

(3)Push远程推送

二、SSH协议

2.1 定义

2.2 特点

2.3 SSH协议与SSL/TLS协议的区别

2.3.1 设计目的和应用场景

2.3.2 通信方式

2.3.3 端口和协议

2.3.4 身份验证方式

2.3.5 应用领域

2.3.6 工作层次

2.4 什么是SSH Key

2.5 使用SSH协议克隆对应文件代码

2.5.1 前期准备

(1)远程仓库代码状态

(2)设置SSH公钥

2.5.2 SSH协议克隆文件代码

(1)克隆步骤

(2)克隆后效果 

三、IDEA集成Git

3.1 配置git.exe文件

3.2 安装Gitee插件

3.3 在IDEA中登录Gitee

3.3.1 生成Token令牌

3.3.2 登录Gitee

3.4 将项目上传到码云(项目分享)

3.2 IDEA克隆已上传的码云代码

3.2.1 复制文件代码的SSH路径

3.2.2 克隆代码

3.3 IDEA中提交推送代码

3.3.1 提交

3.3.2 推送

3.4 IDEA中更新非己所推送的代码 

3.5 修改同类代码合并问题


一、Git图形化界面的使用

1.1 前期准备

Gitee新建仓库,具体操作如下:

初始化readme文件:

初始化完成之后的效果:

1.2 Git图形化界面的使用

1.2.1 文件代码克隆

然后在回到本地资源管理器中新建一个路径,再右击鼠标打开Git GUI here,及具体操作如下:

这里需要提到,如果是按上篇博客用Git Bash去克隆代码的话,则必须使用命令git clone,使用Git Gui的话则不需要用命令操作。

具体操作如下:

 

克隆后的效果:

1.2.2 文件GIt管理效果查看

可以看到此时里面啥也没有,这时候我们新建Person.java,并且往里面写点代码,如下:

然后保存,回到Git Gui界面,点击刷新,即可看到我们刚刚新建的文件,如下:

此时,我们将刚刚新建的Person中的java代码进行改动,并且在Person所在目录下新增含有查询语句的sql文件,如下:

然后回到Git Gui界面刷新,刷新后的界面如下:

紧接着我们将Person暂存,操作及效果如下:

其实到这里大致也看出来了,Git Gui图形化界面相较于命令窗口可以很大程度的加快我们的操作时间,提高我们的开发效率。

1.2.3 Git Gui页面详情图解

这里我们需要先了解Git Gui界面的一些详情,如下:

1.2.4 Git Gui功能演示效果

(1)暂存

暂存演示效果,如下:

(2)提交与注释

提交与注释演示效果,如下:

(3)Push远程推送

进行Push远程推送前:

 远程推送演示效果:

进行Push远程推送后:

二、SSH协议

2.1 定义

  • SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络上安全地运行网络服务。SSH最常见的用途是通过安全的方式远程登录到计算机系统,但它还可以用于安全地传输文件和执行各种网络服务。SSH的主要设计目标是提供强大的身份验证、加密通信和数据完整性。
  • SSH协议有两个主要版本,即SSH-1和SSH-2。SSH-2是SSH协议的较新版本,它在安全性和功能上都有一些改进,而SSH-1则已经过时。 SSH的工作方式涉及客户端和服务器之间的安全连接,通过这个连接进行加密的远程终端访问、文件传输和命令执行。

2.2 特点

SSH(Secure Shell)协议具有以下特点:

  1. 加密通信: SSH协议提供了安全的数据传输,使用加密技术来保护通信的机密性。所有通过SSH协议传输的数据都经过加密,包括用户名、密码、执行的命令和传输的文件。

  2. 身份验证: SSH支持多种身份验证方法,其中最常见的是公钥认证和密码认证。公钥认证是一种更加安全的身份验证方式,可以降低密码泄露的风险。

  3. 端到端的安全性: SSH协议提供端到端的安全性,确保数据在本地计算机和远程服务器之间的传输是受保护的。即使在不受信任的网络中传输数据,也不易受到中间人攻击。

  4. 远程访问: SSH允许用户从本地计算机远程连接到远程主机,并执行命令、访问远程Shell会话。这在服务器管理和维护方面非常有用。

  5. 文件传输: SSH支持安全的文件传输协议,如SCP(Secure Copy Protocol)和SFTP(SSH File Transfer Protocol),使用户能够在本地计算机和远程服务器之间安全地传输文件。

  6. 灵活性: SSH协议非常灵活,可以在不同操作系统和平台上运行,支持各种加密算法和身份验证方法。这使得它适用于多种环境。

  7. 多版本支持: SSH协议有两个主要版本,SSH-1和SSH-2。SSH-2是较新、更安全的版本,广泛使用,而SSH-1已经过时。

  8. 配置和自定义: 用户可以通过配置文件来自定义SSH连接的参数,以适应其需求。这包括定义身份验证方法、指定端口号、设置密钥等。

  9. 秘钥管理: SSH允许用户管理公钥和私钥对,使其更容易进行身份验证。SSH代理可以帮助用户有效地管理他们的密钥。

  10. Known Hosts: SSH客户端维护一个"known_hosts"文件,其中包含已知主机的公钥。这有助于防止中间人攻击,因为客户端可以验证连接的远程主机的身份。

总之,SSH协议的主要特点是提供了安全、加密的远程访问和文件传输服务,适用于各种计算机网络环境,并提供多种身份验证方法以确保通信的安全性。这使得SSH成为许多组织和个人的首选工具,用于保护敏感数据和进行远程管理。

2.3 SSH协议与SSL/TLS协议的区别

SSH协议和SSL/TLS协议是两种不同的安全通信协议,虽然它们都用于加密通信,但在设计目的、使用场景和工作方式上有一些关键的区别。

2.3.1 设计目的和应用场景

  • SSH(Secure Shell): 主要设计用于远程登录和执行命令。它提供了一个安全的命令行接口,使用户能够在远程计算机上执行操作。除了远程登录,SSH还支持安全文件传输和端口转发等功能。

  • SSL/TLS(Secure Sockets Layer/Transport Layer Security): 主要设计用于保护网络通信的安全性,广泛应用于Web浏览器与服务器之间的加密通信。TLS是SSL的继任者,两者通常被通称为SSL/TLS。SSL/TLS在Web浏览器中用于加密HTTPS连接,提供了端到端的加密通信,同时也可用于其他应用程序。

2.3.2 通信方式

  • SSH: 提供点对点的安全通信,通常用于远程管理和控制。SSH会话经常以命令行方式进行,但也可以用于图形用户界面(GUI)的远程桌面。

  • SSL/TLS: 通常用于端到端的安全通信,例如在客户端和服务器之间的浏览器与Web服务器之间的通信。SSL/TLS可以用于各种应用程序,不仅限于远程管理。

2.3.3 端口和协议

  • SSH: 默认使用22号端口,基于TCP协议。

  • SSL/TLS: 通常在HTTP的基础上,通过加密形成HTTPS,使用的端口是443。可以在不同的应用层协议上实现,如HTTPS(HTTP over TLS)。

2.3.4 身份验证方式

  • SSH: 支持多种身份验证方式,包括密码、公钥和其他方法。

  • SSL/TLS: 通常使用数字证书来进行身份验证,其中服务器和客户端都可以验证对方的身份。

2.3.5 应用领域

  • SSH: 主要用于系统管理、远程终端访问和文件传输等。

  • SSL/TLS: 主要用于加密Web通信,保护数据在浏览器和服务器之间的传输。

2.3.6 工作层次

  • SSH: 在应用层之上工作,提供了一个安全的命令行接口。

  • SSL/TLS: 在传输层之上工作,为应用层提供加密和认证服务。

总体来说,虽然SSH和SSL/TLS都为安全通信提供了解决方案,但它们在设计目的和使用场景上存在差异。SSH更专注于远程管理和终端访问,而SSL/TLS广泛应用于网络通信的安全保护,特别是在Web浏览器与服务器之间的加密通信。

2.4 什么是SSH Key

SSH(Secure Shell)密钥是一种用于在计算机之间进行安全通信的加密密钥。SSH协议主要用于远程登录和执行命令,以及安全地传输文件。SSH密钥通过非对称加密技术实现安全通信。

SSH密钥是一对密钥,包括公钥私钥

  1. 私钥(Private Key): 私钥是保存在用户本地计算机上的敏感文件,用于对信息进行加密和数字签名。私钥必须保持机密,不应该被共享或泄露。

  2. 公钥(Public Key): 公钥是与私钥配对的公共部分,可以在网络上自由传播。公钥用于验证由私钥签名的信息或加密的数据。其他用户可以使用你的公钥加密信息,只有拥有私钥的用户才能解密。

使用SSH密钥的主要目的是确保通信的机密性和完整性,同时提供身份验证机制。当你连接到一个支持SSH的服务器时,你可以使用SSH密钥对进行身份验证,而不是输入密码。

SSH密钥的使用流程:

  1. 生成密钥对: 通过使用SSH密钥生成工具,你可以生成一对公私钥。

  2. 将公钥上传到服务器: 服务器上的SSH服务需要知道你的公钥以进行身份验证。通常,你需要将公钥添加到服务器上的~/.ssh/authorized_keys文件中。

  3. 使用私钥进行身份验证: 当你连接到服务器时,SSH客户端将使用私钥进行身份验证。如果私钥匹配服务器上的公钥,则连接将被授权。

  4. 保护私钥: 由于私钥是安全性的关键,确保私钥文件只有你有权访问,并在可能的情况下使用密码保护。

使用SSH密钥相对于密码身份验证具有更高的安全性,因为私钥通常更难以猜测或被破解

2.5 使用SSH协议克隆对应文件代码

2.5.1 前期准备

(1)远程仓库代码状态

在使用SSH克隆代码前,我们需要将远程仓库(即gitee码云)的开源状态更改为私有,操作如下:

点击管理:

 将是否开源更改为私有:

(2)设置SSH公钥

具体步骤如下:

首先打开计算机当前用户下的本地资源,找到.gitconfig文件,如下:

双击用记事本打开文件,然后复制email地址,如下:

然后利用命令生成密钥,命令如下:

ssh-keygen -t rsa -C "xxx@xx.com"//这里的邮箱要换成自己注册时的邮箱

具体操作如下:

然后回到计算机用户目录下,如下:

双击进去可以发现生成了两个密钥,一个是公钥一个是私钥,如下:

然后我们双击进入公钥,复制公钥,将其配置到Gitee码云上,具体步骤如下:

公钥添加成功:

2.5.2 SSH协议克隆文件代码

(1)克隆步骤

复制Gitee仓库上的SSH,如下:

然后打开命令窗口进行克隆,如下:

(2)克隆后效果 

然后输入Yes即可克隆成功,效果如下:

三、IDEA集成Git

假设案例:

当新建了一个项目,需要托管到gitee上,就执行以下步骤:

在IDEA中配置git.exe文件。

在IDEA中安装gitee插件(因为默认情况下git.exe是配合GitHub来使用的)。

在IDEA中登录Gitee。

在IDEA中登录Gitee。

分享搭建好的项目。

3.1 配置git.exe文件

打开IDEA,点击File——>Settings,然后搜索git,进入以下界面后,具体操作如下:

配置完之后测试,测试成功后应用即可:

3.2 安装Gitee插件

因为因为默认情况下git.exe是配合GitHub来使用的,所以我们需要下载Gitee插件。默认情况:

搜索plugins,点击plugins,上方输入Gitee搜索进行下载然后重启IDEA即可。

3.3 在IDEA中登录Gitee

3.3.1 生成Token令牌

回到Gitee界面,点击私人令牌,点击生成新令牌,具体操作如下:

然后自定义私人令牌描述并提交:

然后输入Gitee密码验证身份即可,如下:

私人令牌生成成功,如下:

最后将Token私人令牌复制,以便后面IDEA中登录Gitee。

3.3.2 登录Gitee

具体操作如下:

然后点击Log in登录即可,登录后的效果如下:

3.4 将项目上传到码云(项目分享)

具体操作如下:

选中你要上传的项目后,在上方导航栏找到VCS并且如以下操作:

然后点击选中private私有并且填好对应信息,点击share即可,如下:

上传后的效果如下:

3.2 IDEA克隆已上传的码云代码

3.2.1 复制文件代码的SSH路径

3.2.2 克隆代码

具体步骤如下:

然后点击Clone,点击Yes即可。

3.3 IDEA中提交推送代码

3.3.1 提交

Add添加了之后执行commit提交,如下:

3.3.2 推送

具体操作如下:

推送成功:

Gitee上的效果:

3.4 IDEA中更新非己所推送的代码 

 但是此时,上传代码的用户还未更新代码,如下:

所以我们需要拿到更新后的代码。

具体操作如下:

3.5 修改同类代码合并问题

新增代码:

另一台电脑上新增代码:

在另一台电脑上推送失败,push后出现以下界面:

Merge后效果:

这里发现有错误,于是重新试了一遍,如下:

IDEA1页面代码:

IDEA2页面代码:

最终结果如下:


最后Git Gui的使用+关于SSH协议和克隆对应文件代码+IDEA集成Git等就到这里,祝大家在敲代码的路上一路通畅!

感谢大家的观看 !

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1193535.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

刚安装的MySQL使用Navicat操作数据库遇到的问题

刚安装的MySQL使用Navicat操作数据库遇到的问题 一、编辑连接保存报错二、打开数据表很慢三、MySQL的进程出现大量“sleep”状态的进程四、执行sql脚本报错,部分表导不进去五、当前MySQL配置文件 一、编辑连接保存报错 连接上了数据库,编辑连接保存报错…

分享76个Python管理系统源代码总有一个是你想要的

分享76个Python管理系统源代码总有一个是你想要的 下载链接:百度网盘 请输入提取码 提取码:8888 项目名称 cms是一个基于kubernetes官方python SDKkubernetes开发的一个容器运维系统 Django erp 后台管理系统,仅限学习使用,不…

如何查看网站的https的数字证书

如题 打开Chrome浏览器,之后输入想要抓取https证书的网址,此处以知乎为例点击浏览器地址栏左侧的锁的按钮,如下图 点击“连接是安全的”选项,如下图 点击“证书有效”选项卡,如下图 查看基本信息和详细信息 点击详细信…

【Java】本地开发环境正常、测试或生产环境获取的文件路径不对的问题

引 Java 中经常获取本地文件或者resource下的文件,要获取文件,首先要获得本地路径。 Java 本身或一些开源工具包都提供了很多获取路径的方法。但使用时经常遇到本地开发环境正常、测试或生产环境获取的文件路径不对的问题。 本文将列出几种常见的获取…

minicom----linux 调试工具

简单了解minicom 工具,安装、使用: (6条消息) minicom 的使用_002237的博客-CSDN博客 usb 转uart 串口: 可以烧版本,可以打印。 如果在ttyusb5 打印不出来,换个口插,并把其它的打印串口拔掉。 忘了上次写…

动态规划-构建乘积数组

** 描述 给定一个数组 A[0,1,…,n-1] ,请构建一个数组 B[0,1,…,n-1] ,其中 B 的元素 B[i]A[0]A[1]…*A[i-1]A[i1]…*A[n-1](除 A[i] 以外的全部元素的的乘积)。程序中不能使用除法。(注意:规定 B[0] A[1] * A[2] * … * A[n-1…

《011.SpringBoot+vue之汽车销售管理系统》

《011.SpringBootvue之汽车销售管理系统》 项目简介 [1]本系统涉及到的技术主要如下: 推荐环境配置:DEA jdk1.8 Maven MySQL 前后端分离; 后台:SpringBootMybatis; 前台:vueElementUI; [2]功能模块展示: 1.登录 2.销…

LeetCode刷题总结(一)

文章目录 前言题型排序问题动态规划 前言 本文把刷题过程中的总结记下来,方便未来回顾的时候继续拓展。 题型 排序问题 排序问题的解决方法有很多。对于简单算法来说,最重要的是记住思路;对于高级算法来说,最重要的是记住细节…

linux下搭建gperftools工具分析程序瓶颈

1. 先安装 unwind //使用root wget https://github.com/libunwind/libunwind/archive/v0.99.tar.gz tar -xvf v0.99.tar.gz cd libunwind-0.99 autoreconf --force -v --install ./configure make sudo make install2. 安装gperftools wget https://github.com/gp…

Linux下内网穿透实现云原生观测分析工具的远程访问

📑前言 本文主要是Linux下内网穿透实现云原生观测分析工具的远程访问设置的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 &…

Redis为什么要使用SDS作为基本数据结构

Redis为什么要使用SDS作为基本数据结构 Redis SDS与C语言中字符串的对比二进制安全兼容部分C字符串函数 Redis SDS与C语言中字符串的对比 SDS中保存了字符串的长度属性,我们在获取字符串长度是的时间复杂度为O(1),而C中字符串则需要对字符串进行遍历时间…

【Spring之底层核心架构概念解析】

文章目录 一、BeanDefinition二、BeanDefinitionReader2.1、AnnotatedBeanDefinitionReader2.2、XmlBeanDefinitionReader 五、ClassPathBeanDefinitionScanner六、BeanFactory七、ApplicationContext7.1、AnnotationConfigApplicationContext7.2、ClassPathXmlApplicationCont…

LeetCode 26. 删除有序数组中的重复项 简单

题目 - 点击直达 1. 26. 删除有序数组中的重复项 简单1. 题目详情1. 原题链接2. 题目要求3. 基础框架 2. 解题思路1. 思路分析2. 时间复杂度3. 代码实现 1. 26. 删除有序数组中的重复项 简单 1. 题目详情 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复…

黑客技术-小白自学

前言 一、什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域,都有攻与防…

PLSQL工具 数据库连接名的设置

在help >>surpost info 能看到 这东西好难用啊。。不直接显示url,非要搞个名称。。

7个学习自动化测试小技巧希望能帮助到你

一、编程语言 当我开始担任手动测试人员时,我不喜欢编码。但是,当我逐渐进入自动化领域时,对我来说很清楚,如果没有对编程语言的一些基本了解,就无法编写逻辑自动化测试脚本。 对编程有一点了解,不仅可以…

8 STM32标准库函数 之 实时时钟(RTC)所有函数的介绍及使用

8 STM32标准库函数 之 实时时钟(RTC)所有函数的介绍及使用 1. 图片有格式2 文字无格式二、RTC库函数固件库函数预览2.1 函数RTC_ITConfig2.2 函数RTC_EnterConfigMode2.3 函数RTC_ExitConfigMode2.4 函数RTC_GetCounter.2.5 函数RTC_SetCounter2.6 函数R…

评估 RAG 的神器来啦!TruLens + Milvus=?

大型语言模型(LLM)的日益普及引爆了向量数据库赛道,向量搜索技术也越发受到开发者关注。目前,主流的向量搜索技术提供者包括向量数据库 Milvus 和 Zilliz Cloud,向量搜索库 FAISS,以及与传统数据库集成的向…

清华陆向谦教授提到的纽约时报的一篇文章-探讨学历贬值

文章内容来自: https://www.nytimes.com/2017/11/01/education/edlife/stem-jobs-industry-careers.html By Steve Lohr Nov. 1, 2017 阅读简体中文版閱讀繁體中文版 The national priority in education can be summed up in a four-letter acronym: STEM. And…

数据仓库工具箱-第三章-零售业务

文章目录 一、维度模型设计的4步过程1.1 第一步:选择业务过程1.2 第二步:声明粒度1.3 第三步:确定维度1.4 第四步:确定事实 二、零售业务案例研究2.1 第一步:选择业务过程2.2 第二步:声明粒度2.3 第三步&am…