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操作

相关推荐
mghio35 分钟前
Dubbo 中的集群容错
java·微服务·dubbo
咖啡教室5 小时前
java日常开发笔记和开发问题记录
java
咖啡教室6 小时前
java练习项目记录笔记
java
咖啡教室6 小时前
日常开发中常用的git操作命令和使用技巧
git
鱼樱前端6 小时前
maven的基础安装和使用--mac/window版本
java·后端
RainbowSea7 小时前
6. RabbitMQ 死信队列的详细操作编写
java·消息队列·rabbitmq
RainbowSea7 小时前
5. RabbitMQ 消息队列中 Exchanges(交换机) 的详细说明
java·消息队列·rabbitmq
李少兄8 小时前
Unirest:优雅的Java HTTP客户端库
java·开发语言·http
宁zz8 小时前
乌班图安装jenkins
运维·jenkins