实用的 git 小技巧

时间: 2019-06-11阅读: 140标签: 技巧

前些月,写了一个关于 git 的表格,叫Git Cheat Sheet,现分享一些有用的小技巧,更多内容请移步,另有一个非常不错的关于 git 小技巧的项目 git-tips


是谁动了我的代码

谁动了我的代码?

谁的 bug 指到了我的头上?

团队合作时,经常会出现这样的问题。这时候可以使用 git blame <file> 来定位代码的最后一次修改。但是,有一个问题,这并不能看出本行代码以前的修改。比如项目组中某人对全部代码进行了格式化,git blame 就失去了作用。此时,可以与另一个有用的命令 git log -p <file> 结合使用,可以查看文件的更改历史与明细,最终找到这个锅究竟应该由谁来背。

git blame -L 10,12 package.json
git log -p -L 10,12:package.json


快速切换合并分支

当你经常工作于 A 与 B 两个分支,需要来回切。这时命令应该是 git checkout A,但这里有一个更简单的命令,git checkout -,表示切到最近的一次分支。如果你需要把 B 分支的内容合并过来,可以使用 git merge -。

题外话,cd - 代表进入最近目录,也相当实用。

git checkout -
git merge -


统计项目

统计项目各个成员 commit 的情况,比如你可以查看你自己的项目的 commit 数以及他人对你项目的贡献数

git shortlog -sn
git shortlog -sn --no-merges      # 不包含 merge commit


快速定位提交

如果你的 commit message 比较规范,比如会关联 issuse 或者当前任务或者 bug 的编号,此时根据 commit message 快速定位: git log --grep "Add"。

如果你的 commit message 不太规范,只记得改了哪几行代码,此时也可以根据每次提交的信息查找关键字,是 git log -S "setTimeout"。

同时,也可以根据作者,时间来辅助快速定位。

git log --since="0 am"         # 查看今日的提交
git log --author="shfshanyue"     # 查看 shfshanyue 的提交
git log --grep="#12"              # 查找提交信息中包换关键字的提交
git log -S "setTimeout"           # 查看提交内容中包换关机子的提交


快速定位字符串

如何查找包换关键字的全部文件?

使用 VS Code 可以全局搜索,使用 grep 也可以通过 grep -rn <keyword> 来全局搜索。

不过,它们也会连带搜索忽略文件,比如前端著名的两个文件夹 node_modules 和 public(dist/build)。虽然 grep 可以指定 --exclude 来忽略文件,不过 git 来的更方便一些。

这时,可以使用 git grep <keyword> 来解决这个问题,另外 ag 也可以解决这个问题。

grep -rn <keyword>
grep -rn <keyword> --exclude config.js --exclude-dir node_modules
git grep <keyword>
ag <keyword>

欢迎关注我的公众号山月行,在这里记录着我的技术成长


链接: http://www.fly63.com/article/detial/3643

如何能提高CSS编写技巧?提高Web前端开发效率

如何能提高CSS编写技巧?怎么学好Web前端开发?很多人在学习Web前端时,刚开始都会学习HTML和CSS,HTML用于文本内容,CSS用于样式设计,掌握这两部分知识就可以进行简单的页面制作。不过如果耗时过长作品一般未免有些得不偿失

你可能不知道的64个非常实用的JS小技巧

何为技巧,意指表现在文学、工艺、体育等方面的巧妙技能。代码作为一门现代高级工艺,推动着人类科学技术的发展,同时犹如文字一样承托着人类文化的进步。每写好一篇文章,都会使用大量的写作技巧。

10条提高开发效率的JS技巧

总结一些能够提高开发效率的JS技巧,这些技巧很实用,觉得挺好,想推荐给大家,所以有了这篇文章。生成随机UID;无loop生成指定长度的数组;一行代码去重数组;RGB色值生成16进制色值

JS 中用到的小技巧

本文主要介绍一些 JS 中用到的小技巧,string 强制转换为数字:可以用 *1 来转化为数字 (实际上是调用 .valueOf 方法),然后使用 Number.isNaN 来判断是否为 NaN ,或者使用 a !== a 来判断是否为 NaN ,因为 NaN !== NaN

处理 JS中 undefined 的 7 个技巧

当原作者开始学习JS时,遇到了一个奇怪的情况,既存在undefined 的值,也存在表示空值的null。它们之间的明显区别是什么?它们似乎都定义了空值,而且,比较null == undefined的计算结果为true。

移动端开发必须知道的小技巧

最近在公司写一个混合 app 项目,页面基本全部都是用 H5 完成,嵌入到原生 webview 下。发现一个问题,在 iPhone 6 下 苹果手机的状态栏会挡住页面,导致页面下移,样式错乱,最后网上查找了些解决办法,加了一条 meta 标签解决了问题

JS 中有趣的事实

使用 JS 有很多有趣的地方。尽管工程师们每天都在与之打交道,但仍有一些语言没有被开发出来。本广将介绍一些你可能想不到的JS特性。NaN 是一个 number 类型

提高 Js性能的 12 个技巧

在创建 Web 应用程序时应始终考虑性能。为了帮助你开始,本文列举了有效提高应用程序性能的 12 种方法。性能是创建网页或应用程序时最重要的一个方面。没有人想要应用程序崩溃或者网页无法加载,或者用户的等待时间很长

积极使用解构赋值以及箭头函数提升 Javascript 表现力

本文列举了一些日常会使用到的 Javascript技巧,可以明显提升代码的表现力。解构赋值首先,我们来看一下下面这段代码:数组解构赋值我们现在有三只动物

我喜欢的5个编程技巧

在这篇文章中,我介绍了一些编程时尝试使用的模式。这些模式是多年来我自己在工作中实践的结果,也有是从同事那里偷偷学到的。这些模式没有特定的顺序,只是一个简单的集合。

fly63.com版权所有,内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权,请与小编联系!情况属实本人将予以删除!

广告赞助文章投稿关于web前端网站点搜索站长推荐网站地图站长QQ:522607023

小程序专栏: 土味情话心理测试脑筋急转弯幽默笑话段子句子语录成语大全