当前位置: 首页 > news >正文

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

目录

前言

一、Git GUI的使用

1. 什么是Git GUI

2. 常见的Git GUI工具

3.使用

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

优点:

缺点:

二、SSH协议

1.什么是SSH协议

2.SSH的主要特点和作用

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

相关文章:

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

目录 前言 一、Git GUI的使用 1. 什么是Git GUI 2. 常见的Git GUI工具 3.使用 4.使用Git GUI工具的优缺点 优点: 缺点: 二、SSH协议 1.什么是SSH协议 2.SSH的主要特点和作用 3.SSH密钥认证的原理和流程 4. SSH协议的使用 三、IEDA使用git …...

Linux下C++调用python脚本实现LDAP协议通过TNLM认证连接到AD服务器

1.前言 首先要实现这个功能,必须先搞懂如何通过C调用python脚本文件最为关键,因为两者的环境不同。本质上是在 c 中启动了一个 python 解释器,由解释器对 python 相关的代码进行执行,执行完毕后释放资源。 2 模块功能 2.1python…...

计算机毕业设计选题推荐-校园交流平台微信小程序/安卓APP-项目实战

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…...

FlinK之检查点与保存点机制

检查点与保存点 检查点Checkpoint概述保存时机保存与恢复检查点算法 检查点配置启用检查点指定存储位置其它配置通用增量 保存点Savepoint概述使用保存点切换状态后端 SQL客户端中操作提交作业触发恢复 检查点Checkpoint 概述 在 Flink 中,检查点是用于实现状态一致…...

UE5 新特性 Nanite 开启

啥也不说,只能说,真的牛,在自己的项目上,从10几20的帧数,直接彪到了70 适用场景: 大场景,三角面足够多 在Project Setting里面 将这几个勾未true 勾上这个,放入场景即可...

仿写知乎日报第四周

本周主要修改了以往的一些bug,实现了一些遗漏的新功能。 无限右滑 无限右滑我听了学长的思路,首先在scrollView的画布大小设置多一个宽度的画布,然后每当滑到那个画布的时候,就调用一个通知,该通知会触发在首页的vie…...

MySQL join原理及优化

MySQL的JOIN原理是基于索引和算法的。在执行JOIN查询时,MySQL会根据连接字段上的索引来查找匹配的记录。 这种算法在链接查询的时候,驱动表会根据关联字段的索引进行查找,当在索引上找到了符合的值,再回表进行查询,也就…...

js案例:打地鼠游戏(打灰太狼)

效果预览图 游戏规则 当灰太狼出现的时候鼠标左键点击灰太狼加10分,小灰灰出现的时候鼠标左键点小灰灰击减10分,不点击不减分不加分。 整体思路 1.把获取背景图片中每个地洞的位置,把所有位置放到一个数组中。 2.封装随机数函数,随…...

删除杀软回调 bypass EDR 研究

01 — 杀软或EDR内核回调简介 Windows x64 系统中,由于 PatchGuard 的限制,杀软或EDR正常情况下,几乎不能通过 hook 的方式,完成其对恶意软件的监控和查杀。那怎么办呢?别急,微软为我们提供了其他的方法&a…...

Ansible自动化部署工具-组件及语法介绍

大家好,我是蓝胖子,我认为自动化运维要做的事情就是把运维过程中的某些步骤流程化,代码化,这样在以后执行类似的操作的时候就可以解放双手了,让程序自动完成。避免出错,Ansible就是这方面非常好用的工具。它…...

postgresql实现job的六种方法

简介 在postgresql数据库中并没有想oracle那样的job功能,要想实现job调度,就需要借助于第三方。本人更为推荐kettle,pgagent这样的图形化界面,对于开发更为友好 优势劣势Linux 定时任务(crontab) 简单易用…...

layui 表格(table)合计 取整数

第一步 开启合计行 是否开启合计行区域 table.render({elem: #myTable, url: ../baidui/, page: true, cellMinWidth: 100,totalRow:true,cols: [[ //表头//{ type: checkbox },{ type: checkbox,totalRowText: "合计" },//合计行区域{ field: id, align: center,…...

深入理解 TCP;场景复现,掌握鲜为人知的细节

握手失败 第一次握手丢失了,会发生什么? 当客户端想和服务端建立 TCP 连接的时候,首先第一个发的就是 SYN 报文,然后进入到 SYN_SENT 状态。 在这之后,如果客户端迟迟收不到服务端的 SYN-ACK 报文(第二次…...

【MySQL系列】 第二章 · SQL(中)

写在前面 Hello大家好, 我是【麟-小白】,一位软件工程专业的学生,喜好计算机知识。希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正&#xff0…...

IBM Qiskit量子机器学习速成(一)

声明:本篇笔记基于IBM Qiskit量子机器学习教程的第一节,中文版译文详见:https://blog.csdn.net/qq_33943772/article/details/129860346?spm1001.2014.3001.5501 概述 首先导入关键的包 from qiskit import QuantumCircuit from qiskit.u…...

音视频基础知识

图像(YUV RGB) ​​​​​​​​​​​​​​这个讲的比较好 RGB颜色编码 图像显示主要是由像素组成,每个像素点的颜色组成都是采用RGB格式,RGB就是红、绿、蓝,RGB分别取不同的值,展示不同的颜色。 YUV…...

ida81输入密码验证算法分析以及破解思路

本文分析了ida81对输入密码的验证流程,分别对输入密码到生成解密密钥、密码素材的生成过程以及文件数据的加密过程这三个流程进行分析,并尝试找一些可利用的破绽。很遗憾,由于水平有限,目前也只是有个思路未能完全实现&#xff0c…...

C语言——贪吃蛇

一. 游戏效果 贪吃蛇 二. 游戏背景 贪吃蛇是久负盛名的游戏,它也和俄罗斯⽅块,扫雷等游戏位列经典游戏的⾏列。 贪吃蛇起源于1977年的投币式墙壁游戏《Blockade》,后移植到各种平台上。具体如下: 起源。1977年,投币式…...

Android sqlite 使用简介

进行Android应用开发时经常会用到数据库。Android系统支持sqlite数据库,在app开发过程中很容易通过SQLiteOpenHelper使用数据库,SQLiteOpenHelper依赖于Context对象,但是基于uiatomator1.0和Java程序等无法获取Context的应用如何使用数据库呢…...

UE地形系统材质混合实现和Shader生成分析(UE5 5.2)

前言 随着电脑和手机硬件性能越来越高,游戏越来越追求大世界,而大世界非常核心的一环是地形系统,地形系统两大构成因素:高度和多材质混合,此篇文章介绍下UE4/UE5 地形的材质混合方案----基于WeightMap混合。 材质层 …...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

书籍“之“字形打印矩阵(8)0609

题目 给定一个矩阵matrix,按照"之"字形的方式打印这个矩阵,例如: 1 2 3 4 5 6 7 8 9 10 11 12 ”之“字形打印的结果为:1,…...

pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决

问题: pgsql数据库通过备份数据库文件进行还原时,如果表中有自增序列,还原后可能会出现重复的序列,此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。 点击菜单“其它”-》“序列”,…...

EEG-fNIRS联合成像在跨频率耦合研究中的创新应用

摘要 神经影像技术对医学科学产生了深远的影响,推动了许多神经系统疾病研究的进展并改善了其诊断方法。在此背景下,基于神经血管耦合现象的多模态神经影像方法,通过融合各自优势来提供有关大脑皮层神经活动的互补信息。在这里,本研…...

Git 命令全流程总结

以下是从初始化到版本控制、查看记录、撤回操作的 Git 命令全流程总结,按操作场景分类整理: 一、初始化与基础操作 操作命令初始化仓库git init添加所有文件到暂存区git add .提交到本地仓库git commit -m "提交描述"首次提交需配置身份git c…...

【Linux】使用1Panel 面板让服务器定时自动执行任务

服务器就是一台24小时开机的主机,相比自己家中不定时开关机的主机更适合完成定时任务,例如下载资源、备份上传,或者登录某个网站执行一些操作,只需要编写 脚本,然后让服务器定时来执行这个脚本就可以。 有很多方法实现…...

初级程序员入门指南

初级程序员入门指南 在数字化浪潮中,编程已然成为极具价值的技能。对于渴望踏入程序员行列的新手而言,明晰入门路径与必备知识是开启征程的关键。本文将为初级程序员提供全面的入门指引。 一、明确学习方向 (一)编程语言抉择 编…...

循环语句之while

While语句包括一个循环条件和一段代码块&#xff0c;只要条件为真&#xff0c;就不断 循环执行代码块。 1 2 3 while (条件) { 语句 ; } var i 0; while (i < 100) {console.log(i 当前为&#xff1a; i); i i 1; } 下面的例子是一个无限循环&#xff0c;因…...