Git 命令使用体验的神器 -- tig
ubuntu: sudo apt-get install tig
centos: yum install tig
macOS: brew install tig
Git 和 tig 的关系有点像 top 和 htop, 是一种命令行交互式操作工具 tig 的所有功能都是 Git 命令行已经具备的, tig 提供了一种直观, 方便快捷的 Git 操作.
在 Git 项目中敲 tig, 进入 tig 界面后再敲 h (代表help) 即可进入帮助界面, 该界面列出了所有常用命令项目分支下直接敲 tig, 进入到了 log 界面, 使用 j/k 或 上/下 键可以选择指定提交, 回车后, 界面的一半会展示此次commit详情, 此时, 上/下 键可以选择 log 中的 commit, 详情界面会跟着变化, 而 j/k 键会在 commit 详情内移动焦点, 选中 commit 中列出的文件, 回车会跳转到该文件的详情, 而使用 @ 可以按照代码块的粒度来浏览 commit 中的内容, 通过这些操作, 我们可以很容易的快速浏览log 中多个commit 中的内容, 而这一点通过 Git 命令或 GUI 都是很难快速方便的完成的.
快速查看 log 详情及 help
tig 的 status 界面
tree 界面
blame 界面下快速查看 commit 全貌
如何查看 diff 中某句修改时整个文件的面貌呢? 实际上在 diff 界面也可以直接敲 b 进入 blame 界面即可查看截止此次提交时该文件的全貌, 如果明确知道想要看哪个文件的 blame 全貌, 也可以 直接使用 tig blame filename.
如何查看一个文件的全部提交记录? 以及快速查看某次提交的全部内容? 有了 tig, 可以轻松做到这一点, 直接 tig filename, 进入到该文件的 tig 主界面, 即可快速查看指定文件的 log 和提交内容, 你还可以选择只查看某个 commit 以及之前的提交, 只需要使用 tig commit-id filename 即可.
如何查找 commit message 中带有指定文字的 commit 呢? 如果终端本身支持搜索功能, 使用终端自带的 cmd + f 即可搜索 tig 主界面中的任何文本, 那如何通过 commit-id 查找呢? tig 主界面中默认没有展示 commit-id, 使用 shift + x 即可展示 commit-id.
tig 也自带搜索功能, 敲 / 即可进入, 输入字符后回车, 将高亮展示所有匹配项, 敲 n 将聚焦到离当前焦点最近的下方的匹配项, 大写 N 则是上方的匹配项, 敲回车将展示详情.
tig 的原生搜索功能
在提交 commit 中常常会碰到按代码块的粒度来提交的需求, 使用原生的 git add -i 略显繁琐, 在 tig 中, 这个操作变得无比简单, 只需要在 staged changes 或 unstaged changes 使用 @ 选中代码块, 敲 u 即可改变状态, 如果你只想改变一行代码的状态, 使用 j/k 选中要改变的单行代码, 用数字键 1 代替 u 即可实现这个原本用 Git 命令行很难实现的功能.
进入 tig 主界面敲 r 即可看到项目分支列表, 在分支下敲回车即可进入 log 界面, 使用这个功能可以快速在不同分支之间查阅代码, 免去了频繁切换分支的麻烦, 需要切换分支时, 选中分支按住 shift + c 即可.
快速在不同分支中查看具体 commit
Git 命令使用体验的神器 -- tig相关推荐
- 颠覆Git 命令使用体验的神器 - tig
颠覆 Git 命令使用体验的神器 -- tig tig, 就是把 Git 这个单词倒过来念, 它是一个命令行工具, 日常使用中我用它来取代 Git 最高频的几个操作, 如 git log, git d ...
- linux tig不支持中文,颠覆 Git 命令使用体验的神器 -- tig
tig, 就是把 Git 这个单词倒过来念, 它是一个命令行工具, 日常使用中我用它来取代 Git 最高频的几个操作, 如 git log, git diff 以及 git blame等, 使用常见安 ...
- tig--颠覆 Git 命令使用体验的神器
tig, 就是把 Git 这个单词倒过来念, 它是一个命令行工具, 日常使用中我用它来取代 Git 最高频的几个操作, 如 git log, git diff 以及 git blame等, 使用常见安 ...
- linux tig不支持中文,tig — 让 git 命令行可视化
tig 是一款优化 git 命令行的工具,使 git 命令行更加的便捷人性化 .如果用习惯了,会上瘾. image 基础 安装 在 Mac 上最简单的方式是使用 Homebrew: brew inst ...
- externalreferences 命令在 sdi 模式下不可用_一个适合新手交互式Git命令学习项目
前言 在我们日常工作开发中,Git是必不可少的版本控制软件,很多时候我们都用Git来管理我们的项目. 比较常用的有Github,Gitlab,Stash等. 因此对于Git命令的掌握是我们工作必备的能 ...
- -bash: wget: 未找到命令_18个堪称神器的命令行工具,高效运维必备
上期入口:24个 CSS 高级技巧合集 提示:因公众号不支持超链接,上图所有项目地址,可在公众号后台回复关键字 "命令行工具" 获取. thefuck 命令行打错了以后,打一个fu ...
- git指令如何葱master转到dev_小姐姐用动画图解Git命令,一看就懂!
「 点击图片获取最近两年爆款好文 」 无论是开发.运维,还是测试,大家都知道Git在日常工作中的地位.所以,也是大家的必学.必备技能之一.之前公众号也发过很多git相关的文章: Git这些高级用法,喜 ...
- Node.js git命令
一.课堂开篇 1.1 自我介绍 1.2 第三阶段课程简介 二.Git版本控制工具 为什么要使用版本控制工具?[了解] 在公司中开发项目时通常是多人协同开发,经常会出现代码文件相互被覆盖.代码不同步.同 ...
- 冰河亲自整理的Git命令汇总,悄悄努力,然后惊艳所有人
大家好,我是冰河~~ Git目前是各大互联网公司使用的版本控制工具,进大厂,必须要学会Git的基本使用.这不,最近就有很多小伙伴私信我:冰河,可以帮我整理下Git的使用命令吗?网上的太零散了,买书看又 ...
最新文章
- leetcode-34-在排序数组中查找元素的第一个和最后一个位置
- mangodb 高频数据_金融分析量化系统,高频交易程序数据库通常采用哪种方式存贮数据?...
- 详解Python中的JSON以及在Python中使用JSON
- ITK:提取给定的标签对象
- 【miscellaneous】IP多播技术及其编程
- python分布式框架_高性能分布式执行框架——Ray
- EntityFramework Code First 添加唯一键
- 10月21日下午PHP常用函数
- Spring框架----Spring的bean之三种创建bean对象的方式
- post-commit hook failed (exit code 255) with no output 解决方案
- 技术无价,“悟”有所值——UCan下午茶这一年
- Windows下用FFmpeg+nginx+rtmp搭建直播环境 实现推流、拉流
- 易速联服务器稳定吗,异速联如何保障应用安全性?
- SPF算法中的ISPF和PRC介绍
- 【无标题】开发一个app到底要多少钱?有多贵?
- Win7系统盘瘦身。
- C#与C/C++的交互
- 使用爬虫爬取两种数据:结构化/非结构化文本
- PHP API接口鉴权
- OpenGl太阳地球月亮运动系统
热门文章
- 微信小程序-云开发云调用API没有权限(no permission)问题
- 两层板(双面板)如何控制50欧特性阻抗
- 给社交软件“一星保护”:95后在想什么
- wp后台页面切换慢,打开速度慢:jquery-ui.min.css加载失败——在国外
- DevTools 无法加载来源映射无法加载 httplocalhost8082axios.min.map 的解决方法
- ipython notebook 如何打开.ipynb文件?
- python 步数_用python如何修改微信和支付宝每天走路的步数
- 写一段wavefront_reader的代码
- Android 知识点——Method put in org.json.JSONObject not mocked
- 确定sw1开关信号输入端口_机械光开关 MEMS光开关