git tig使用技巧

如果您使用Git作为版本控制系统,则您可能已经对Git是一个复杂的野兽这一事实感到失望。 这是一个很棒的工具,但导航Git存储库可能很麻烦。 那就是Tig之类的工具出现的地方。

在“ 跳动”手册页中 :

Tig是git(1)的基于ncurses的文本模式接口。 它主要用作Git存储库浏览器,但也可以帮助暂存更改以在块级别进行提交,并充当各种Git命令输出的寻呼机。

基本上,这意味着Tig提供了可在终端中运行的基于文本的用户界面。 使用Tig可以轻松浏览Git日志,但是它不仅可以使您从上次提交跳到上一个,还可以做很多事情。

Tig快速入门中的许多示例都是直接从其出色的手册页中挖掘的。 我强烈建议阅读以了解更多信息。

安装工具

  • Fedora和RHEL: sudo dnf安装tig
  • Ubuntu和Debian: sudo apt安装tig
  • MacOS: brew install tig

有关更多选项,请参阅官方安装说明 。

浏览您当前分支中的提交

如果要浏览分支中的最新提交,请输入:

 tig 

而已。 这三个字符的命令将启动浏览器,您可以在其中浏览当前分支中的提交。 您可以将其视为git log的包装器。

要浏览输出,可以使用向上和向下箭头键从一个提交移动到另一个提交。 按下Return / Enter键将打开一个垂直拆分,右侧为所选提交内容。 您可以继续在左侧的提交历史记录中上下浏览,所做的更改将显示在右侧。 使用kj按行和-上下导航,以及使用空格键在右侧向上和向下翻页。 使用q退出右侧窗格。

搜索tig输出也很简单。 使用/向前搜索和 在左右两个窗格中向后搜索。

这足以使您开始浏览提交。 这里没有太多的按键绑定,但是单击h将显示一个帮助菜单,您可以在其中找到其导航和命令选项。 您还可以使用/ 搜索帮助菜单。 使用q退出帮助。

浏览单个文件的修订

由于Tig是git log的包装器,因此它方便地接受可以传递给git log的相同参数。 例如,要浏览单个文件的提交历史,请输入:

 tig README.md 

将其与包装的Git命令的输出进行比较,以更清楚地了解Tig如何增强输出。

 git log README.md 

要将补丁包括在原始Git输出中,可以添加-p选项:

 git log -p README.md 

如果您想将提交范围缩小到特定的日期范围,请尝试如下操作:

 tig --after="2017-01-01" --before="2018-05-16" -- README.md 

同样,您可以将其与原始Git版本进行比较:

 git log --after="2017-01-01" --before="2018-05-16" -- README.md 

浏览谁更改了文件

有时您想找出是谁更改了文件以及原因。 命令:

 tig blame README.md 

本质上是git怪的包装。 如您所料,它允许您查看谁是最后一个人来编辑给定的行,并且还可以导航到引入该行的提交。 这有点像:Gblame命令Vim的vim-fugitive插件提供的。

浏览您的藏匿处

如果您像我一样,可能会在您的藏匿处进行大量编辑。 容易忘记它们。 您可以通过以下方式查看存储中的最新项目:

 git stash show -p stash@{0} 

您可以通过以下方式找到最近的第二项:

 git stash show -p stash@{1} 

等等。 如果您可以在需要时随时调用这些命令,那么您的记忆力将比我快得多。

与上面的Git命令一样,Tig可以通过简单的调用轻松增强Git输出:

 tig stash 

尝试在具有已存储隐藏项的存储库中发出此命令。 您将能够浏览和搜索存储项,从而快速概览下雨天保存的所有内容。

浏览您的裁判

Git ref是您已提交的东西的哈希值。 这包括文件以及分支。 使用 tig refs命令可让您浏览所有引用并向下钻取到特定的提交。

 tig refs 

完成后,使用q返回上一级菜单。

浏览git状态

如果要查看已暂存的文件和未跟踪的文件,请使用tig status ,这是git status的包装。

浏览git grep

您可以使用grep命令在文本文件中搜索表达式。 命令tig grep允许您浏览git grep的输出。 例如:

 tig grep -i foo lib/Bar 

将在lib / Bar目录中浏览不区分大小写的foo搜索的输出。

通过STDIN将管道输出到Tig

如果要将提交ID的列表传递给Tig,则必须使用--stdin标志,以便tig show从stdin中读取。 否则, tig show将在没有输入的情况下启动(渲染空白屏幕)。

 git rev-list --author=olaf HEAD | tig show --stdin 

添加自定义绑定

您可以使用rc文件来自定义Tig。 通过添加一些有用的自定义键绑定的示例,可以按照自己的喜好配置Tig。

在主目录中创建一个名为.tigrc的文件。 在您喜欢的编辑器中打开〜/ .tigrc并添加:

# Apply the selected stash
bind stash a !?git stash apply %(stash)

# Drop the selected stash item
bind stash x !?git stash drop %(stash)


如上所述,运行tig stash来浏览您的stash。 但是,有了这些绑定后,您可以按a将存储中的项目应用到存储库中,按x从存储中删除项目。 请记住,浏览存储列表时需要执行以下命令。 如果要浏览存储 ,请输入q退出该视图,然后按ax获得所需的效果。

有关更多信息,您可以阅读有关Tig键绑定的更多信息。

结语

我希望这对Tig如何改善您的日常工作流程很有帮助。 Tig可以执行更强大的功能(例如,登台代码行),但这超出了本介绍性文章的范围。 这里有足够的信息使您处于危险之中,但还有更多值得探索的地方。

翻译自: https://opensource.com/article/19/6/what-tig

git tig使用技巧

git tig使用技巧_如何使用Tig浏览Git日志相关推荐

  1. git stash pop冲突_这有一份 git 日常使用清单,你需要吗?

    点击上方"前端教程",选择"星标" 每天前端开发干货第一时间送达! 作者:echozh juejin.im/post/5d5b4c6951882569eb570 ...

  2. git url地址无效_如何同步多个 git 远程仓库

    日常需求 以前源码是托管在 github 的, 现在想要同步托管在 gitee, 一做备份分发, 二方便国内下载使用(网速可观), 三防特色墙... 方式一 使用 gitee 的强制同步 之前在 gi ...

  3. git实现审核功能_代码库(SVN GIT)及代码评审

    禅道专业版本提供了更加全面的SVN Git集成,可以通过web界面浏览源代码里面的文件目录,查看修复记录,进行比对等操作.以SVN为例: 一.创建代码版本库 最新版本的禅道,进入代码视图,默认是需要先 ...

  4. Git学习总结(18)——让你成为Git和GitHub大神的20个技巧

    Git不仅是编程世界最流行的分布式版本控制系统,而且你还可以用它查找,分享以及优化你的代码.接下来就来看看怎样让Git和GitHub更好地为你服务吧. 尽管现在网上有很多Git的初学者教程,而且Git ...

  5. Git - 入门到熟悉_日志管理

    文章目录 Pre 常用命令 演示 Pre Git - 入门到熟悉_Git基本概念与核心命令 Git - 入门到熟悉_分支管理 Git - 入门到熟悉_远程仓库管理 在使用 Git 提交了若干更新之后, ...

  6. git 修改分支名字_大牛总结的 Git 使用技巧,写得太好了!

    作者:你喜欢吃青椒么来源:juejin.im/post/5d157bf3f265da1bcc1954e6 前言 本文是参考廖雪峰老师的Git资料再加上我自己对Git的理解,记录我的Git学习历程,作下 ...

  7. git stash 强制恢复_开发中必须要掌握的 Git 技巧

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:你喜欢吃青椒么 juejin.im/post/5d157bf3f265da1bcc1 ...

  8. git 修改分支名字_开发中必须要掌握的 Git 技巧

    前言 本文是参考杜老师的Git资料再加上我自己对Git的理解,记录我的Git学习历程,作下此文是为以后学习,工作,开发中如果遇到问题可以回过头来参考参考.因为水平有限,难免会有出错的地方,欢迎指正. ...

  9. git 修改tag 备注_【Git】第十二章:Git高级实战技巧

    1.查看不同版本之间的代码差异 短SHA-1值 使用git命令来代表某个commit时,我们不一定就是要用40位完整的SHA-1 hash值,也可以只是提供hash值的前几位就可以了,至少要4位以上, ...

最新文章

  1. 呵呵,哈哈,嘿嘿,从今天起就开始写博客文了
  2. mongodb 日期分组聚合_mongoose聚合aggregate按日期分组计算
  3. SAP UI5 Drop down list value changed
  4. python中curve fit_在python中拟合多变量curve_fit
  5. powershell XML操作
  6. php 比java 快_php比java要快在哪里
  7. maya python 游戏与影视编程指南_《Maya Python游戏与影视编程指南》【价格 目录 书评 正版】_中国图书网...
  8. 10亿级!淘宝大规模图像检索引擎算法设计概览
  9. Word 2007 发布测试
  10. 您的Android版本不兼容,android – 您的设备与某些设备的此版本不兼容
  11. Leetcode每日一题:4.寻找两个有序数组的中位数
  12. 2018年计算机考试玉林地点,广西壮族自治区玉林市2021上半年计算机等级考试时间...
  13. NTSD命令用法详解
  14. CVS版本控制-冲突解决方法
  15. 车牌识别系统 HY-LPR2
  16. diskgenius给C盘扩容总结
  17. Intel无线网卡linux,Deepin 15.8/Ubuntu 18.04用intel无线网卡9260ac速度跑不满的解决
  18. eps图片太大压缩小
  19. 【python篇】python基础之--基本问题记录
  20. VMware 兼容性列表与产品互操作性列表使用收集(持续更新中...)

热门文章

  1. JUC:ReentrantLock互斥锁
  2. windows安装mysql 5.7
  3. 20172303 2018-2019-1《程序设计与数据结构》第7周学习总结
  4. python 函数编程
  5. Maven +Tomcat+m2eclipse的热部署(hot deploy)
  6. You don't have permission to access /nagios/ on this server
  7. 数据不平衡问题及解决方案
  8. linux source 子shell,Linux------source
  9. java生成图片url_Java Springboot如何基于图片生成下载链接
  10. Java方法中数组_Java中数组常用方法的总结