GIT实战篇,教你如何使用GIT可视化工具
系列文章目录
手把手教你安装Git,萌新迈向专业的必备一步
GIT命令只会抄却不理解?看完原理才能事半功倍!
快速上手GIT命令,现学也能登堂入室
GIT实战篇,教你如何使用GIT可视化工具
- 系列文章目录
- 一、GIT有哪些常用工具
- 1. Git GUI
- 2. GITK
- 3. GitKraken
- 4. TortoiseGit
- 5. 其他
- 二、工具的使用
- 1. 安装TortoiseGit
- 2. 新建本地仓库
- 3. 维护远程仓库
- 4. 代码递交
- 5. 查看历史
- 6. 更多功能
- 三、IDEA 嵌入
- 1. 解决冲突
- 2. 切换分支
- 3. 日志图
- 4. 远程插件
- 总结
经过前三期的学习,不管是GIT模型还是GIT命令,相信大家都已经有了比较全面的了解。当然,尽管GIT命令永远是最强大而全面的,但并不是说只能使用命令来控制,我们还可以使用一些可视化工具。通过界面按钮,能大大提高我们的使用效率。不过,前提是我们已经知道其运行机制,不然就会导致意料之外的情况,那么,今天我就带大家一起来学习一些可视化工具的内容
📕作者简介:战斧,从事金融IT行业,有着多年一线开发、架构经验;爱好广泛,乐于分享,致力于创作更多高质量内容
📗本文收录于 GIT 专栏,有需要者,可直接订阅专栏实时获取更新
📘高质量专栏 云原生、RabbitMQ、Spring全家桶 等仍在更新,欢迎指导
📙Zookeeper Redis kafka docker netty等诸多框架,以及架构与分布式专题即将上线,敬请期待
一、GIT有哪些常用工具
1. Git GUI
这是我们在windows下安装GIT后自带的工具,也就是官方的可视化工具了,可以通过界面完成GIT的操作并且更加直观、易于管理。
其操作界面如下:
2. GITK
如果说GIT GUI 重点是方便我们的提交,那GIT还自带了个GITK,方便我们进行历史记录的浏览,其打开方式需要在某个仓库下输入gitk
,如下:
其界面打开后如下:
3. GitKraken
GitKraken 也是一个很多人使用的GIT工具,而且是跨平台的,即Linux, Mac, Windows都支持,其官网为:https://www.gitkraken.com/。界面如下:
4. TortoiseGit
TortoiseGit 也是一款广泛使用的GIT工具,曾经使用过SVN的应该不陌生,也就是著名的”小乌龟“,笔者现在也在使用,非常好用,但缺陷就是只支持windows系统,其官网如下:https://tortoisegit.org/
5. 其他
除了上面介绍的几种,大家还可以前往 https://git-scm.com/downloads/guis 查看官方列出的各种常用GIT工具,并按需下载
二、工具的使用
上文介绍了很多工具,这一章我们就以其中笔者使用的 TortoiseGit
来举例,说一下可视化工具的使用。记住,使用 TortoiseGit
工具前,先把GIT
安装并建立好自己的库,其安装及基础使用教程可以先看该文章 《手把手教你安装Git,萌新迈向专业的必备一步》
1. 安装TortoiseGit
首先进入 TortoiseGit 下载页:https://tortoisegit.org/download/,选择适合自己系统的安装程序。至于汉化包,有需要的可以下载。
安装我们还是遵循一贯的风格,除了安装路径改了下,其他的都是默认选项,然后一路 Next 就可以。
一般情况下,它能自动找到你安装的GIT的位置,但如果它找错了,就需要你手动配置一下了
在安装完 TortoiseGit 后,有需要的汉化的,可以继续安装下载的汉化包,笔者这里就不继续配置了,还是以英语界面继续进行讲解
当你成功安装完后,在已经被GIT管理的目录下,单击右键,应当能看到多出几个指令
2. 新建本地仓库
我们找到一个普通的项目目录,然后使用TortoiseGit
将其纳入管理,如下,在工程目录里使用右键,单机,选择新建仓库
会弹出框,询问我们是否把库设置为裸库,我们不要勾选(裸库一般是分享库),点击OK
此刻我们应该能观察到目录中多出了一个熟悉的 .git 隐藏目录
3. 维护远程仓库
完成本地仓库的创建后,我们还想把我们的项目上传到远程Gitee,这样方便我们以后在其他电脑上拉取和修改。此时可以先Gitee 上新建一个仓库
如果小伙伴们看过前面的博客,不难知道接下来我们可以通过以下命令,来追踪远程仓库
git remote add origin https://gitee.com/XXXXXXX/springdemo.git
不过,这次我们可以不敲命令,通过可视化窗口来配置,其维护操作如下:
进入设置后,将远程仓库的URL地址填上,然后再随便想一个名字,这个名字就是在你这个本地仓库里,对这个远程仓库的起的别名.
4. 代码递交
完成了上面的种种操作,现在可以开始递交了,我们先将工作区这些内容提交到本地仓库。但在此之前,如果我们确定有一些内容我们不用交到远程,可以新建个.gitingnore 的文件,本例中,我们可以把 .idea 和 target 目录放入其中
# Default ignored files
/.idea/
/target/
然后再进行代码的提交,如下:
注意红框的部分建议填写,此时要注意勾选我们需要提交的文件,因为像 target 等目录已经被我们设置为忽略了,所以此处我们直接点击 ALL 来选中显示的所有文件,然后点击 commit
在提交完以后,页面会自动弹窗提醒你是否要将最新内容推送至远程仓库,那么我们肯定是要推的,这里点击push
注意弹出来的选项框,因为我们先前维护了远程仓库,这里就默认选中了这个仓库gitee_origin,远程分支可以不填,默认会用本地分支的名字master,点击OK即可
显示成功,至此,我们就完全摆脱命令行,单纯使用 TortoiseGit
实现了仓库新建及代码递交
5. 查看历史
完成上述内容后, TortoiseGit
还有一项很重要的功能,就是查看递交历史,这在溯源问题时非常必要,我们同样可以通过右键单击打开对应页面
页面还提供了根据日期、提交人等信息进行过滤的功能,对于查询提交记录十分方便
6. 更多功能
对于 TortoiseGit
更多功能,可以点击Help打开操作手册,来进行更深入的学习
三、IDEA 嵌入
关于如何在IDEA中使用GIT的基础操作,可以去 手把手教你安装Git,萌新迈向专业的必备一步 看一下,本次我们着重讲一下其他场景
1. 解决冲突
冲突一般发生在分支合并的时候,不同分支的代码如果改动了同一地方,而且要合并,此时就会产生冲突,需要人为解决冲突。我们现在制造一种冲突的场景,我们在本地代码中加了一行注释,如下:
但是使用另一个仓库在同样位置加了另一句注释,并已经推送至远端
那么当我们在本地代码进行更新的时候,应该会出现冲突
果不其然,发生了冲突,弹出了如下页面,左侧是本地代码,右侧是远程仓库代码,我们可以自行调整后,如何来解决冲突
此处我们坚持使用本地的代码,所以可以点击左边红框的箭头,然后点击右下角的 apply 来应用,并在弹窗中二次确认
这样,我们就能够成功的解决冲突
2. 切换分支
在日常开发中,我们可能经常某一个分支的任务做到一半,就会被紧急叫去解决另外一个分支的问题,那么此时我们就要做一次暂存,然后切换分支。我们在此演示一种场景,我正在本地的master分支写了一些代码,现在紧急需要修改dev分支,那么我们可以如下操作,先把未保存的内容进行 stash 贮存
写上一些贮存的信息
贮存完以后,本次修改的内容会会消失,此时我们再进行分支切换
当我们忙完 dev 的内容后再切换回 master 分支时,只需要再从stash 贮存区把我们存的内容还原即可
选择我们贮存的那次修改,并将其取出
最后我们的 master 分支又恢复原样了
3. 日志图
在GIT中,我们经常需要查看提交的历史情况,可以使用其日志图功能,输入命令
git log --graph
但这个图看起来局限性还是比较大,可视化效果也一般。现在我们可以使用Idea来看到日志图,我们以上次说的开源框架Sa_Token 为例,分析它的历史情况。首先,我们新建一个文件夹,然后clone
其仓库
$ git clone https://gitee.com/dromara/sa-token.git
打开 Idea ,在Git 的 Log 窗口内就能看到它的日志图了
图中的每个小点代表一次提交,每条线代表一个分支,整体按照时间倒叙,也就是越在上面时间就越晚。而这些线相交的点则意味着这是一次拉出分支 或者 合并。如果我们关注某次提交,可以直接选中那一行,看它的相关信息
4. 远程插件
除了上述的方法,码云其实在Idea的市场里也提供了码云(Gitee)插件,如下图:
当然,Github 的插件也是不会缺的,如下图:
安装完成后,我们在工程里右键,就能看到两个平台的菜单指令了
当然,我们在Git 菜单下也能有更多快捷的使用方法,比如快速分享工程至Github,或者查看谁提交了 pull request 等等常见功能
总结
本次我们总结了一些可视化工具的用法,并演示了使用IDEA的情况下面对一些场景的处理方式,可以看到,工具按钮总是比比命令行更高效直观,所以可视化操作对于开发者来说,简直如虎添翼。当然GIT的使用并不总是顺利,比如笔者曾遇见一些冲突解决后,自己未提交的代码遗失的问题。不过幸好IDEA自己有历史功能,还能从history中恢复代码。同事们也会偶发关于GIT的错误操作,导致的各种故障,甚至有时候连续几次误操作,最终影响到版本发布。所以尽管GIT的日常使用并不复杂,但还是要保持谨慎,出现误操作后千万要冷静,不要着急一通摆弄,反而容易把小问题变得更严重了。
相关文章:

GIT实战篇,教你如何使用GIT可视化工具
系列文章目录 手把手教你安装Git,萌新迈向专业的必备一步 GIT命令只会抄却不理解?看完原理才能事半功倍! 快速上手GIT命令,现学也能登堂入室 GIT实战篇,教你如何使用GIT可视化工具 系列文章目录一、GIT有哪些常用工具…...

lv3 嵌入式开发-4 linux shell命令(文件搜索、文件处理、压缩)
目录 1 查看文件相关命令 1.1 常用命令 1.2 硬链接和软链接 2 文件搜索相关命令 2.1 查找文件命令 2.2 查找文件内容命令 2.3 其他相关命令 3 文件处理相关命令 3.1 cut 3.2 sed 过滤 3.3 awk 匹配 4 解压缩相关命令 4.1 解压缩文件的意义 4.2 解压缩相关命令 1 …...

SpringBoot2.0集成WebSocket,多客户端
适用于单客户端,一个账号登陆一个客户端,登陆多个客户端会报错 The remote endpoint was in state [TEXT_FULL_WRITING] 这是因为此时的session是不同的,只能锁住一个session,解决此问题的方法把全局静态对象锁住,因…...

华为OD机试 - 等和子数组最小和 - 深度优先搜索(Java 2022 Q4 100分)
目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷)》…...

浏览器会因为什么样的脚本而崩溃
浏览器可能因为以下几种情况而崩溃: 无限循环:如果JavaScript脚本包含一个无限循环,浏览器将无法停止脚本的执行,导致浏览器不响应甚至崩溃。例如,以下代码会导致无限循环: while (true) {// 无限循环 } 内…...

生成与调用C++动态链接库(so文件)
文章目录 前言生成C动态链接库步骤1:编写C源码步骤2:生成共享库步骤3:验证生成的SO文件 调用C动态链接库步骤1:修改原来makefile步骤2:编译调用程序步骤3:运行调用程序 总结 前言 动态链接库是代码重用和模…...

韶音的耳机怎么样,韶音骨传导耳机值得入手吗
韶音关于骨传导耳机的产品在质量方面还是有着不错的表现,其最具代表性的骨传导耳机就是韶音OpenRun Pro,在国产骨传导耳机中是具备了一定的知名度,有着自主研发的声学技术。 最突出的点就在于颜色上多样化,有着经典的黑色…...

STM32G030F6 (SOP-20)Cortex ® -M0+, 32KB Flash, 8KB RAM, 17 GPIOs
淘宝淘了一批 STM32G030F6P6 SOP20.先备注一下, 还没想到能干嘛用. 手上的 STM32F103C6T6还剩一些. 一堆 “淘宝原厂STM32F103C8T6”, 还烫着手. 理解信息: ( 逐步补充 ) System Clock GPIOs GPIOs 17 PA[7:0] : 8bits USART Timer ADC I2…...

常用的字符集和字符编码
基础概念 字符 字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等 字符集 一个操作系统支持的字符的集合。 字符编码和解码 将每个字符都设置一个唯一编号,编码就是将字符集中的字符编号以一定形式转化为字节存储下来,…...

容器技术简介
引言 随着云计算、大数据、人工智能等技术的不断发展,容器技术作为一种新兴的虚拟化技术,正逐渐成为IT领域的热点。容器技术可以帮助开发者更好地管理、部署和扩展应用程序,提高开发效率和应用程序的可靠性。本文将深入探讨容器技术的概念、…...

数据分享|R语言用lme4多层次(混合效应)广义线性模型(GLM),逻辑回归分析教育留级调查数据...
全文链接:http://tecdat.cn/?p22813 本教程为读者提供了使用频率学派的广义线性模型(GLM)的基本介绍。具体来说,本教程重点介绍逻辑回归在二元结果和计数/比例结果情况下的使用,以及模型评估的方法(点击文末“阅读原文…...

macos 不支持svn安装
macos 10.13可能不支持svn命令,所以要安装 xcode-select --install 弹窗在线安装失败的话只能手动下载安装 打开:Sign In - Apple 搜索Command Line Tools (macOS 10.13) 下载9.4.1版本直接安装后即可...

如何通过实际操作来加深对Linux命令和概念的理解?
作为一个新手,你一定不要被Linux那堆命令吓到。其实,它们就像你的“超能力”,只要你掌握它们,你就能成为Linux世界的超级英雄! 首先,我们要了解的是,Linux命令其实就像你的“魔法咒语”&#x…...

【开发语言】C语言与Python的互操作详解
博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…...

华为配置聚合vlan(Super vlan--Sub vlan)
聚合vlan,Aggregation vlan,也称Super vlan,可以实现用Sub vlan二层隔离广播域,但又将这些Sub vlan聚合使用同一IP子网和网关的情况。 这样,多个Sub-VLAN共享一个网关地址,节约了子网号、子网定向广播地址、…...

CentOS7安装时直接跳过了安装信息摘要页面的解决方法
最近在配置Hadoop虚拟机的时候,创建的centos7虚拟机在安装信息摘要时直接自动跳过,直接跳到设置用户名和密码,在重复多次的重新删除安装后发现了问题所在: 在进行到选择操作系统来源时,注意是否出现“该操作系统将使用…...

python基础运用例子
python基础运用例子 1、⼀⾏代码交换 a , b :a, b b, a2、⼀⾏代码反转列表 l[::-1]3、合并两个字典 res {**dict1, **dict2}**操作符合并两个字典for循环合并dict(a, **b) 的方式dict(a.items() b.items()) 的方式dict.update(other_dict) 的方式 4、⼀⾏代码列…...

k8s基本概念
一、什么是Kubernetes二:Kubernetes部署方式的演变三、为什么要用K8S四、K8S的特性五、Kubernetes 集群架构与组件5.1 Master 组件① Kube-apiserver② Kube-controller-manager③ Kube-scheduler④ AUTH 认证模块 5.2 配置存储中心5.3 Node 组件① Kubelet② Kube-…...

Python exp() 函数
描述 exp() 方法返回x的指数,ex。 语法 以下是 exp() 方法的语法: import mathmath.exp( x ) 注意:exp()是不能直接访问的,需要导入 math 模块,通过静态对象调用该方法。 参数 x -- 数值表达式。 返回值 返回x的指数,ex。 实例 以下展…...

Day 34 贪心算法 part03 : 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果
134. 加油站 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 给定两个整数数组 gas…...

气象站的构成及功能应用
气象站是一种用于观测、记录和报告天气数据的设备。它是由数据采集系统、通讯系统、供电系统和立杆支架构成。 一、气象站的构成: 数据采集系统:用于测量气温、湿度、风速、风向、气压、降雨量、雪深等气象参数。 通讯系统:收集和处理传感…...

Qt中布局管理使用总结
目录 1. 五大布局 1.1 QVBoxLayout垂直布局 1.2 QHBoxLayout水平布局 1.3 QGridLayout网格布局 1.4 QFormLayout表单布局 1.5 QStackedLayout分组布局 1.6 五大布局综合应用 2. 分割窗口 3. 滚动区域 4. 停靠区域 1. 五大布局 1.1 QVBoxLayout垂直布局 #include <…...

(位运算) 剑指 Offer 15. 二进制中1的个数 ——【Leetcode每日一题】
❓ 剑指 Offer 15. 二进制中1的个数 难度:简单 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为 汉明重量).)。 提示ÿ…...

基于SSM的新能源汽车在线租赁系统
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…...

CTF 代码审计之绕过过滤的空白字符
题目 <?php header("Content-Type:text/html;charsetutf-8"); highlight_file(02kbzf.php);//引入名为 flag2.php 的文件。 include(f . lag2 . .php);//初始化变量 $info 和 $req。 $info ""; $req [];//读取文件 flag2.php 的内容到变…...

【Vue】 Vue3 安装说明,适合小白新手
1、独立版本 我们可以在 Vue.js 的官网上直接下载最新版本, 并用 下载 Vue.js https://unpkg.com/vuenext 2、使用 CDN 方法 以下推荐国外比较稳定的两个 CDN,国内还没发现哪一家比较好,目前还是建议下载到本地。 Staticfile CDN(国内&am…...

电脑提示“系统找不到指定的文件”怎么办?
“系统找不到指定的文件”对于Windows用户来说是一个很常见的错误,尤其是Win10用户,经常会遇到Win10提示找不到指定文件。在此错误后面有时还会出现错误代码:0x80070002,但是,故障类型或代码在不同的操作系统规范上是不…...

向openssl中添加一个最简单的算法
文章目录 一、尝试在sha.c中添加新的函数二、添加自定义算法2.1 添加对应文件2.2 相关配置2.3 编译运行 一、尝试在sha.c中添加新的函数 在尝试添加新算法前,我先尝试在原有的旧算法中添加一个新函数,看是否能被编译并生成对应的动态链接库。 关于open…...

自己公司开发的ERP系统,怎么对接京东,淘宝等这些电商平台?
得益于互联网基建的成熟及快速发展的电子商贸经济,我国线上零售市场快速增长,2022年全国线上零售额达到13.79万亿元,占社会消费品零售总额的比重为27.2%,也就是说每卖出三件零售商品,就有一件是从线上销售。中大型零售…...

联想集团财报不及华尔街预期,财务业绩恐将继续恶化
来源:猛兽财经 作者:猛兽财经 华尔街对联想集团财报的预测 在联想集团(00992)公布2024财年第一季度财务业绩之前,华尔街分析师就曾预测,联想集团的收入和利润将实现强劲增长。 具体而言,根据S&…...