一些实用的 git 小技巧

栏目: 编程工具 · 发布时间: 6年前

内容简介:前些月,写了一个关于 git 的表格,叫谁动了我的代码?谁的 bug 指到了我的头上?

前些月,写了一个关于 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_modulespublic(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>

<hr/>

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

一些实用的 git 小技巧


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

流量池

流量池

杨飞 / 中信出版集团 / 2018-4 / 68.00

移动互联网时代,信息日益冗余,新闻速朽; 整体流量增长速度放缓,而竞争者数量高速增加; 流量呈现变少、变贵、欺诈频繁的现状; 品效合一的营销策略成为共识,而实现路径成为痛点; 多次开创各营销渠道效果之最的营销人、各种刷屏级营销事件操盘手、神州专车CMO杨飞,这一次倾囊相授,诚恳讲述如何实现流量获取、营销转化以及流量的运营和再挖掘。一起来看看 《流量池》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

SHA 加密
SHA 加密

SHA 加密工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具