当前位置: 首页 > 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混合。 材质层 …...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

Android15默认授权浮窗权限

我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中&#xff0…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?

在工业自动化持续演进的今天,通信网络的角色正变得愈发关键。 2025年6月6日,为期三天的华南国际工业博览会在深圳国际会展中心(宝安)圆满落幕。作为国内工业通信领域的技术型企业,光路科技(Fiberroad&…...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...