Git GUI、SSH协议和IDEA中的Git使用详解

目录

前言

[一、Git GUI的使用](#一、Git GUI的使用)

[1. 什么是Git GUI](#1. 什么是Git GUI)

[2. 常见的Git GUI工具](#2. 常见的Git GUI工具)

3.使用

[4.使用Git GUI工具的优缺点](#4.使用Git GUI工具的优缺点)

优点:

缺点:

二、SSH协议

1.什么是SSH协议

2.SSH的主要特点和作用

3.SSH密钥认证的原理和流程

[4. SSH协议的使用](#4. SSH协议的使用)

三、IEDA使用git

配置安装路径

下载Git插件

登录用户

IDEA克隆已上传的码云代码

IDEA中提交推送代码


前言

在软件开发领域,版本控制是非常重要的一环。Git作为目前最流行的版本控制系统之一,为开发者提供了便捷的代码管理和协作工具。本文将详细介绍Git GUI工具的使用方法,以及如何配置SSH协议进行安全的远程仓库访问。同时,我们还将深入探讨在IntelliJ IDEA集成的Git功能,为开发者提供更便捷的代码管理体验。

一、Git GUI的使用

1. 什么是Git GUI

Git GUI是指图形用户界面(Graphical User Interface)工具,用于与Git进行交互的界面。它提供了一种直观的方式来管理和操作Git仓库,相较于命令行Git,Git GUI更加友好和易于上手。

与命令行Git的区别和优势

  • 介绍Git GUI相较于命令行Git的优势,比如直观的显示版本历史、分支结构和提交记录等。
  • 强调Git GUI在可视化操作、快速学习和跨平台使用等方面的优点。

2. 常见的Git GUI工具

TortoiseGit

  • 特点:Windows平台上常用的Git GUI工具,与资源管理器集成,提供方便的操作方式。
  • 适用场景:个人开发者或小团队,需要简单直观的Git界面操作。

GitHub Desktop

  • 特点:由GitHub官方推出的Git GUI工具,与GitHub仓库无缝集成。
  • 适用场景:GitHub用户,希望通过可视化界面管理本地和远程仓库。

Sourcetree

  • 特点:功能丰富的跨平台Git GUI工具,支持Git和Mercurial。
  • 适用场景:需要复杂操作和高级功能支持的开发者或团队。

3.使用

在Git里面提前新建好仓库并进行一些基本的操作,这里就不过多演示了可以查看Git安装配置保姆级教程和Git创建仓库的基本原理和常用命令该篇博文

在本地仓库右键选择Git GUI Here

我们先在gitee中创建了我的仓库,接下来直接克隆即可

进去后我们可以看到以下界面

这是我们克隆下来的文件

我们新建几个文件进行测试使用GUI

此时我们在图形化界面中刷新以下

4.使用Git GUI工具的优缺点

优点:

  1. 易于上手: 对于不太熟悉命令行操作的开发者来说,Git GUI提供了直观的图形化界面,使得版本控制操作更加直观和易于上手。
  2. 可视化操作: Git GUI工具通常提供可视化的提交、分支管理,以及代码变更等功能,使得开发者可以通过图形化界面轻松地进行这些操作,而不需要记忆所有的Git命令。
  3. 跨平台性: 很多Git GUI工具都支持多个操作系统,因此可以在Windows、Mac和Linux等不同平台上使用,满足了不同开发者的需求。

缺点:

  1. 学习曲线: 尽管Git GUI工具简化了一些操作,但是对于某些高级的Git操作或定制化需求,仍然需要理解Git的基本原理和命令,因此可能需要花费一些时间来学习。
  2. 功能限制: 有些Git GUI工具可能不能完全覆盖Git的所有功能,特别是对于一些较为复杂的操作,可能需要借助命令行来完成。
  3. 性能: 一些Git GUI工具相对于命令行操作可能会存在一定的性能损耗,尤其是在处理大型代码仓库时。

二、SSH协议

1.什么是SSH协议

SSH(Secure Shell)是一种网络协议,用于在网络上安全地传输数据。它提供了加密的通道,用于通过不安全的网络(如互联网)安全地连接到远程系统。SSH最初设计用于替代诸如telnet和rsh等不安全的远程登录和执行命令的方法。目前,SSH广泛用于远程服务器管理、文件传输和加密隧道等领域。

什么是ssh key

SSH key是一种基于密钥的身份验证方式,用于远程SSH连接。它包括一个私人密钥和一个公用密钥。私人密钥存储在客户端计算机上,而公用密钥则放在服务器上。当客户端尝试连接到服务器时,服务器会要求客户端提供私人密钥以进行身份验证。如果验证成功,则客户端将能够通过SSH协议与服务器进行通信。

2.SSH的主要特点和作用

  1. 加密通信: SSH使用加密技术对通信数据进行加密,从而防止未经授权的访问者窃取信息。
  2. 身份验证: SSH支持多种身份验证方式,包括基于密码、公钥和双因素认证等,确保用户的身份合法性。
  3. 远程登录和执行命令: 用户可以通过SSH安全地登录到远程主机,并在远程系统上执行命令。
  4. 安全文件传输: SSH协议还提供了用于安全文件传输的协议,如SCP(Secure Copy Protocol)和SFTP(Secure File Transfer Protocol)。
  5. 端口转发: SSH支持端口转发功能,使得用户可以安全地映射本地端口到远程主机上,实现安全的网络隧道。

3.SSH密钥认证的原理和流程

SSH密钥认证基于公钥加密技术,实现了一种更加安全和便捷的身份验证方式。其原理和流程如下:

  1. 生成密钥对: 用户在本地系统上使用工具生成一对密钥,包括私钥和公钥。
  2. 将公钥配置到远程服务器: 用户将生成的公钥配置到远程服务器上的authorized_keys文件中,以便远程服务器进行认证。
  3. SSH连接过程:
  • 客户端发起连接请求时,服务器会发送一个随机的挑战(challenge)给客户端。
  • 客户端使用私钥对挑战进行签名,并将签名后的结果发送给服务器。
  • 服务器收到签名后的结果后,使用事先配置的公钥对签名进行验证,如果验证成功,则表明用户身份合法,允许登录。

4. SSH协议的使用

将仓库变成私有仓库,新建一个文件夹存储及克隆私有仓库

我们将通过SSH协议进行克隆,首先我们需要添加公钥,然后对公钥进行设置

添加公钥

首先在命令窗口中输入cd ~/.ssh查看是否有生成的ssh

没有公钥我们就生成一个公钥,输入ssh-keygen -t rsa -C "Email",Email 是你配置的邮箱,不知道的话可以去**.gitconfig**文件中查看,然后接着按三个回车即可

然后我们将公钥配置到我们的gitee上去,点击确定之后还需要输入gitee登陆的密码,生成我们的ssh key

成功之后我们选择SSH进行克隆测试

选择你需要克隆的位置,右键 Git Bash Here --->git clone[url]

三、IEDA使用git

IEDA通常提供类似于终端或命令行的界面,你可以通过该界面来使用Git命令行工具。在IEDA中,你可以通过命令行执行各种Git命令,比如git clone用于克隆仓库,git add用于添加文件到暂存区,git commit用于提交更改等。

配置安装路径

要将Git集成到IntelliJ IDEA中,可以按照以下步骤操作:

打开IntelliJ IDEA软件。

点击File,在弹出的菜单中选择Settings。

在设置窗口中,选择Version Control,然后点击Git。

在Git设置窗口中,选择路径下拉菜单,选择Git\bin\git.exe安装路径。

下载Git插件

File/settings/plugins

登录用户

在这里面找到 Version Control >>> Gitee 选择对应的登录方式进行登录。

通过gitee登录

  1. 点击之后跟随操作即可
  2. 使用密码登录

使用你登陆的账号和密码进行登录,这种方式还是很好登录的。

使用令牌登录

进入gitee

这样令牌就生成成功啦

复制你的令牌,进行登录

登录成功

上传项目

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

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

远程仓库:

IDEA克隆已上传的码云代码

复制文件代码的SSH路径

克隆代码

然后点击Clone,点击Yes即可

IDEA中提交推送代码

提交

执行add操作,将文件提交Git管理

执行commit操作,将文件上传到本地仓库

推送,执行push操作

推送成功

远程仓库查看

如果我们是拉取代码或文件,执行pull操作

相关推荐
尚学教辅学习资料6 分钟前
基于SpringBoot的医药管理系统+LW示例参考
java·spring boot·后端·java毕业设计·医药管理
雷神乐乐22 分钟前
File.separator与File.separatorChar的区别
java·路径分隔符
小刘|27 分钟前
《Java 实现希尔排序:原理剖析与代码详解》
java·算法·排序算法
wowocpp29 分钟前
ubuntu 22.04 硬件配置 查看 显卡
linux·运维·ubuntu
逊嘘1 小时前
【Java语言】抽象类与接口
java·开发语言·jvm
萨格拉斯救世主1 小时前
jenkins使用slave节点进行node打包报错问题处理
运维·jenkins
morris1311 小时前
【SpringBoot】Xss的常见攻击方式与防御手段
java·spring boot·xss·csp
川石课堂软件测试1 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
龙哥说跨境1 小时前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
七星静香1 小时前
laravel chunkById 分块查询 使用时的问题
java·前端·laravel