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

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

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

相关文章

js随机生成颜色

封装一个函数 返回一个随机颜色 不传参数或者传true返回十六进制, 传false返回rgb模式 script>function Random(n, m) {if (n > m) {let temp nn mm temp}return Math.floor(Math.random() * (m - n 1)) n}function getRandomColor(flag true) {if (fl…

Linux常用命令——bzip2recover命令

在线Linux命令查询工具 bzip2recover 恢复被破坏的.bz2压缩包中的文件 补充说明 bzip2recover命令可用于恢复被破坏的“.bz2”压缩包中的文件。 bzip2是以区块的方式来压缩文件,每个区块视为独立的单位。因此,当某一区块损坏时,便可利用b…

桌面图标设置-将“我的电脑”、“控制面板”添加到桌面

桌面图标设置 1、将“我的电脑”、“控制面板”添加到桌面 桌面鼠标右键-个性化-主题-桌面图标设置-勾选”计算机“、”回收站“、”控制面板“-应用-确定-桌面鼠标右键-排序-名称

数据结构 队列(C语言实现)

目录 1.队列的概念及结构2.队列的代码实现 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂,风趣幽默,忍不住分享一下给大家。 点击跳转到网站。 1.队列的概念及结构 队列:只允许在…

力扣第516题 最长回文子序列 c++ 动态规划 附Java代码 注释版

题目 516. 最长回文子序列 中等 相关标签 字符串 动态规划 给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。…

3DMAX如何渲染室内效果图?

这可能不是最好的教程,但对于3dmax初学者来说,它具有一定的学习价值和启示意义。 任何在建筑或室内设计领域工作并需要室内或外部空间“艺术家渲染”的人都会熟悉行业巨头Autodesk发布的3ds Max。 3ds Max是此类工作的默认标准,不是因为它在其他3D程序中无法完成,而是因为它…

电脑出现病毒提示解决办法

已检测:Trojan:Win32/WacatacA!ml 状态:已隔离 隔离的文件在不会损害设备的受限区域内。系统将自动删除它们 日期:2023/11/1013:21详细信息这个程序很危险,而且执行来自攻击者的命令 受影响的项目: driver: haStdnetfilter file: C:WINDOWSsystem32\drivers\haStdne…

Django(三、数据的增删改查、Django生命周期流程图)

文章目录 一、 基于ORM进行的CURDuser_list:作为主页使用路由文件urls.py配置如下:add.html:用于新增用户的数据页add页面视图函数如下:edit.html:修改数据的页面那么来总结一下上序所操作所用到的内容。 导入已存在的表其方式有两…

dbeaver连接别人的数据库没有表

1.概念 非缺省的数据库: 通常是指在一个数据库管理系统(DBMS)中,除了系统默认创建的数据库之外的其他用户创建或自定义的数据库。许多数据库系统在安装后会创建一个默认数据库,例如MySQL中的mysql数据库,…

Python---字典的增、删、改、查操作

字典的增操作 基本语法: 字典名称[key] value 注:如果key存在则修改这个key对应的值;如果key不存在则新增此键值对。 案例:定义一个空字典,然后添加name、age以及address这样的3个key # 1、定义一个空字典 person {…

【iOS开发】iOS App的加固保护原理:使用ipaguard混淆加固

​ 摘要 在开发iOS应用时,保护应用程序的安全是非常重要的。本文将介绍一种使用ipaguard混淆加固的方法来保护iOS应用的安全。通过字符串混淆、类名和方法名混淆、程序结构混淆加密以及反调试、反注入等主动保护策略,可以有效地保护应用程序的安全性。 …

从0开始python学习-34.pytest常用插件

目录 1. pytest-html:生成HTML测试报告 2.pytest-xdist:并发执行用例 3. pytest-order:自定义用例的执行顺序 4. pytest-rerunfailures:用例失败时自动重试 5. pytest-result-log:用例执行结果记录到日志文件 1. pytest-html…

SpringBootWeb案例——Tlias智能学习辅助系统(3)——登录校验

前一节已经实现了部门管理、员工管理的基本功能。但并没有登录,就直接访问到了Tlias智能学习辅助系统的后台,这节来实现登录认证。 目录 登录功能登录校验(重点)会话技术会话跟踪方案一 Cookie(客户端会话跟踪技术)会话跟踪方案二…

数据结构----顺序栈的操作

1.顺序栈的存储结构 typedef int SElemType; typedef int Status; typedef struct{SElemType *top,*base;//定义栈顶和栈底指针int stacksize;//定义栈的容量 }SqStack; 2.初始化栈 Status InitStack(SqStack &S){//初始化一个空栈S.basenew SElemType[MAXSIZE];//为顺序…

环境变量小节

这是写的第二篇环境变量博客,写了一年多了,第一次出现把自己博客删了的情况,不知道为什么明明发表了,然后就把草稿箱和回收站的删了,结果晚上发现没发表,回收站删除是无法找回的,以后还是要慎重…

使用Python自动检测SSL证书是否过期

目录 一、概述 二、SSL证书过期检测原理 三、Python实现SSL证书过期检测 四、注意事项 总结 一、概述 随着互联网的普及和安全意识的提高,SSL证书的使用变得越来越重要。SSL证书可以提供加密通信,保护用户的数据安全,防止中间人攻击等。…

震裕科技-300953 三季报分析(20231108)

震裕科技-300953 基本情况 公司名称:宁波震裕科技股份有限公司 A股简称:震裕科技 成立日期:1994-10-18 上市日期:2021-03-18 所属行业:专用设备制造业 周期性:0 主营业务:精密级进冲压模具及下游…

搭建Docker

一、概念 云服务器大家肯定不陌生了,相比较传统物理服务器来说他的价格,个性化的配置服务,节省了很多的运维成本,越来越多的企业以及个人开发者更加的青睐于云服务器。有了属于自己的服务器就可以部署搭建自己个人网站了&#xf…

mac安装brew

命令 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"如图 选择下载源,进行安装 安装完成 验证

Java基础知识第四讲:Java 基础 - 深入理解泛型机制

Java 基础 - 深入理解泛型机制 背景:Java泛型这个特性是从JDK 1.5才开始加入的,为了兼容之前的版本,Java泛型的实现采取了“伪泛型”的策略,即Java在语法上支持泛型,但是在编译阶段会进行所谓的“类型擦除”&#xff0…