成为git砖家(2): gitk 介绍

news2024/12/23 4:55:30

大家好,我是白鱼。这篇我们介绍 gitk。

gitk 和 fork 界面对比

当我们在 macOS 上执行 brew install git 后, 得到了 git 命令行工具。 然而这条命令并不会安装 gitk. gitk 是 git 自带的图形化界面工具,也可以称为“穷人版 fork”:

在这里插入图片描述
同一个 repo, fork 的界面是:
在这里插入图片描述
实话说, gitk 确实没有 fork 好看, 但是基本功能还是很相似:查看 commit history 的树状图, 查看每个 commit 修改的文件内容、文件列表等。 由于 gitk 免费,并且在 windows, linux, macos 都可用, 不得不说有时候它是最佳选择。

macOS 安装 gitk

brew install git-gui

是的,你没看错, 是 git-gui.

git 官方对于 gitk 的介绍

实际上是来自 pro git 第二版的附录:
https://git-scm.com/book/zh/v2/附录-A%3A-在其它环境中使用-Git-图形界面

如果你读完了本书,那就已经掌握了很多在命令行中使用 Git 的知识了。 你可以用它来处理本地文件,通过网络连接到他人的仓库,以及高效地与他人协同工作。 不过故事到这儿还没结束。Git 通常还会作为一个组件在更大的生态系统中使用, 而终端并不总是最佳的使用方式。现在我们来看看 Git 在其它环境中的使用, 以及其它应用(包括你的应用)是如何与 Git 协同使用的。

当给公司新人 review code,针对 git commit history 出现了非线性提交记录、扰乱了被提交代码本身时,使用 gitk 可视化的查看 commit tree, 表直观。

gitk 是一个历史记录的图形化查看器。 你可以把它当作是基于 git log 和 git grep 命令的一个强大的图形操作界面。 当你需要查找过去发生的某次记录,或是可视化查看项目历史的时候,你将会用到这个工具。

gitk 使用指南

1. 查看 git commit 树

那么 gitk 相比于 git log --graph 命令, 有啥不一样么?是的,图形界面调整字体大小,比终端明显方便的,gitk能更清晰的从 commit tree 看出问题

以 https://github.com/xylcbd/EasyCNN 仓库为例,左图是执行 git log --graph --pretty=oneline 得到的内容,右图是执行 gitk 后进入图形界面看到的内容(鼠标稍微调整了下各个自窗口大小)。显然,左图什么问题都看不出来, 右图很明显看到了橙黄色区域里的commit和底部红色箭头指向的commit重复了:
在这里插入图片描述

具体到两次 “initialize repo.” 的commit,我们从 gitk 分别查看提交时间和作者:
在这里插入图片描述
在这里插入图片描述
可以看到作者、提交时间完全一样。

2. 查看某一段历史记录

gitk 执行的是完整的 commit tree 的查看, 而如果只对某一段 git commit 历史记录感兴趣, 可以只查看这一段的。

例如我们只对 refactoring framework. add MSE loss function. 以及它之前的commit感兴趣,这一段是完全线性的、没有分叉和合并节点的:
在这里插入图片描述
我们看到对应的 commit hash 值是 d065024 开头, 因此关掉 gitk , 在命令行重新打开 gitk 时增加指定 commit hash:

# 格式: gitk <想要查看的最后一个commit>
gitk d065024

在这里插入图片描述

3. gitk 默认查看的是当前分支

仍然是以一团乱麻的 git commit history 的 EasyCNN 仓库为例子,我们发现在 update digit_data_sample. 这次 commit 之前都还挺正常的, 因此从这次 commit 切出 dev 分支:

git checkout -b dev 12c4dca

再用 gitk 查看: 发现界面很清晰了:
在这里插入图片描述

4. gitk 查看所有分支

gitk --all

上述命令查看所有分支的 commit history:

在这里插入图片描述

5. gitk 查看某个目录的 commit 历史记录

用法:

gitk <目录名>

例如

gitk src![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/2cf41f9a6fd04d3ab461d58e6b683faa.png)

在这里插入图片描述

6. gitk 查看某个文件的 commit 历史记录

gitk <文件名>

例如

gitk README.md

在这里插入图片描述

结语

gitk 相对于纯粹的命令行还是有明显优势的。 不过,它没法在图形界面忽略或显示不同的分支、remote, 显示文件树时也没有很好看的 icon, 没法和 fork 这样的后起之秀相比较。 但作为一个基本的 git gui工具,它是合格的,并且是跨平台的,值得掌握使用。

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

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

相关文章

如何穿透模糊,还原图片真实面貌

目录 图像清晰化的魔法棒&#xff1a;AI如何穿透模糊&#xff0c;还原图片真实面貌 前言 论文背景 论文思路 模型介绍 复现过程 演示视频 使用方式 本文所涉及所有资源均在传知代码平台可获取。 图像清晰化的魔法棒&#xff1a;AI如何穿透模糊&#xff0c;还原图片真实面貌 在我…

使用Docker搭建MySql的主从同步+ShardingSphere搭建Mysql的读写分离

参考课程 尚硅谷ShardingSphere5实战教程&#xff08;快速入门掌握核心&#xff09;_哔哩哔哩_bilibili 主服务器 创建容器 docker run -d \ -p 3306:3306 \ -v /kira/mysql/master/conf:/etc/mysql/conf.d \ -v /kira/mysql/master/data:/var/lib/mysql \ -e MYSQL_ROOT…

java学习---异常

前言 由于被分母不能为0&#xff0c;所以代码到int yn/m;会抛出异常&#xff0c;停止运行下去&#xff0c;但是如果是个庞大的代码&#xff0c;因为这种小错误而整个程序崩溃&#xff0c;会大大影响代码整体的健壮性&#xff0c;所以此时就需要我们得异常处理了 选中异常代码部…

正则采集器——前端搭建

前端使用有名的饿了么管理后台&#xff0c;vue3版本vue3-element-admin&#xff0c;首先从gitee中克隆一个vue3-element-admin模板代码vue3-element-admin: Vue3 Element Admin开箱即用的中后台管理系统前端解决方案&#xff0c;然后在此基础上进行开发。 1、修改vite.config.…

【深入理解SpringCloud微服务】深入理解Ribbon原理并手写一个微服务负载均衡器

深入理解Ribbon原理并手写一个微服务负载均衡器 负载均衡器理解Ribbon原理手写一个微服务负载均衡器总体设计LoadBalanceClientHttpRequestFactorySimpleLoadBalanceClientSimpleLoadBalancerLoadBalanceRulespring.factories与LoadBalanceConfig 负载均衡器 在微服务架构里面…

应用层_计算机网络

文章目录 应用层HTTP用户与服务器的交互&#xff1a;cookieWeb缓存HTTP/2 SMTPDNS&#xff1a;因特网的目录服务P2P文件分发BitTorrentCDN内容分发网 应用层 应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递报文。应用层协议定义了以下内容&#xff1a; 交换的…

结构性设计模式-外观模式

一、外观模式 有些人可能炒过股票&#xff0c;但其实大部分人都不太懂&#xff0c;这种没有足够了解证券知识的情况下做股票是很容易亏钱的&#xff0c;刚开始炒股肯定都会想&#xff0c;如果有个懂行的帮帮手就好&#xff0c;其实基金就是个好帮手&#xff0c;支付宝里就有许…

算力共享:如何理解、标识与调控多层次算力资源的异构性和复杂性,实现智能算力网生态诸要素有效互操作?

目录 鹏程云主机和NPU计算服务器关系 NPU计算服务器 两者关系 结论 两种不同类型的处理器或计算单元 FPGA MLU NS3(Network Simulator version 3) 一、基本属性 二、主要功能与特点 三、应用与前景 对象存储和HDD存储 一、定义与特点 二、应用场景 三、总结 对…

培养前端工程化思维,不要让一行代码毁了整个程序

看《阿丽亚娜 5 号&#xff08;Ariane 5&#xff09;火箭爆炸》有感。 1、动手写项目之前&#xff0c;先进行全局性代码逻辑思考&#xff0c;将该做的事情&#xff0c;一些细节&#xff0c;统一建立标准&#xff0c;避免为以后埋雷。 2、避免使用不必要或无意义的代码、注释。…

把 网页代码 嵌入到 单片机程序中 2 日志2024/7/26

之前不是说把 网页代码 嵌入到 单片机程序中 嘛! 目录 之前不是说把 网页代码 嵌入到 单片机程序中 嘛! 修改vs的tasks.json配置 然后 测试 结果是正常的,可以编译了 但是:当我把我都html代码都写上去之后 还是会报错!!! 内部被检测到了,没辙,只有手动更新了小工具代码 …

低功耗单声道音频编解码器ES8311中文规格书介绍

特征 具有ADC和DAC的低功耗单声道音频编解码器ES8311。 ES8311 QFN20封装的外形和丝印 系统 • 高性能、低功耗多位 delta-sigma 音频 ADC 和 DAC • I2S/PCM 主站或从站串行数据端口 • 256/384Fs、USB 12/24 MHz 和其他非标准音频系统时钟 • I2C 接口 模数转换器 • 24…

28 列表创建与删除

使用 “” 直接将一个列表赋值给变量即可创建列表对象。 my_list [a, #, 128, [12], [], {2, }, {a: 1, b: 2}] print(my_list) print(type(my_list)) print(id(my_list[0]), id(my_list[-1]))可以使用 list() 函数把元组、range对象、字符串、字典、集合或其他可迭代对象转换…

PDF管理器和查看器PdfDing

什么是 PdfDing &#xff1f; PdfDing 是一款自托管 PDF 管理器和查看器&#xff0c;可在多种设备上提供无缝用户体验。它设计精简、速度快&#xff0c;并且易于通过 Docker 设置。 功能特点 在多种设备上无缝基于浏览器的 PDF 查看使用标签整理 PDF干净且响应迅速的用户界面暗…

photoshop学习笔记——选区3

从窗口面板可以打开历史记录面板&#xff0c;历史记录面板保存了所有的操作 可以点击历史记录中某一条&#xff0c;回到当时的操作状态&#xff0c;也可以通过编辑中的 还原、重做、切换到最终状态逐步调整或直接跳到最终状态 回退之后&#xff0c;如果有新的操作&#xff0c;历…

GEE:设置ui.Map.Layer上交互矢量边界填充颜色为空,只显示边界

一、目标 最近在GEE的交互功能鼓捣一些事情&#xff0c;在利用buffer功能实现了通过选点建立一个矩形后&#xff0c;需要将该矩形填充颜色设为空&#xff0c;只留边界。 然而通过正常设置layer的可视化参数并不能实现这一目的。因此只能另辟蹊径&#xff0c;改为定义矢量边界…

项目开发实战案例 —— Spring Boot + MyBatis + Hibernate + Spring Cloud

作者简介 我是本书的作者&#xff0c;拥有多年Java Web开发经验&#xff0c;致力于帮助更多开发者快速掌握并运用Java Web技术栈中的关键框架和技术。本书旨在通过实战案例的方式&#xff0c;带领读者深入理解并实践Spring Boot、MyBatis、Hibernate以及Spring Cloud等热门技术…

reshape函数介绍及应用

reshape 函数在 MATLAB 中是一个非常有用的函数&#xff0c;通过重新排列现有元素来重构数组。它允许你重新调整数组&#xff08;或矩阵&#xff09;的尺寸&#xff0c;而不改变其数据。这个函数特别适用于当你需要将一个矩阵或数组从一种结构转换为另一种结构时&#xff0c;只…

【计算机网络】TCP负载均衡实验

一&#xff1a;实验目的 1&#xff1a;了解TCP负载均衡的配置。 2&#xff1a;学会使用NAT技术处理和外部网络的连接。 二&#xff1a;实验仪器设备及软件 硬件&#xff1a;RCMS交换机、网线、内网网卡接口、Windows 2019操作系统的计算机等。具体为&#xff1a;二层交换机1…

Redis:RDB持久化

1. 简介 实现类似照片记录效果的方式&#xff0c;就是把某一时刻的数据和状态以文件的形式写到磁盘上&#xff0c;也就是 快照。这样一来即使故障宕机&#xff0c;快照文件也不会丢失&#xff0c;数据的可靠性也就得到了保证。 这个快照文件就称为RDB文件(dump.rdb)&#xff0c…

黑马头条Day10-定时计算热点文章、xxl-job

一、今日内容 1. 需求分析 目前实现的思路&#xff1a;从数据库直接按照发布时间倒序查询 问题&#xff1a; 如果访问量比较大&#xff0c;直接查询数据库&#xff0c;压力较大新发布的文章会展示在前面&#xff0c;并不是热点文章 2. 实现思路 解决方案&#xff1a;把热点…