1. 从某个分支检出单个文件

你是否有过破坏了某个文件,想要重新开始?

或者需要的文件在另一个分支中?

下面的命令让你直接从某个分支取到那个文件。

git checkout some-other-branch -- yarn.lock

你也可以从某个 commit 中取到 yarn.lock 文件

git checkout 9146467 -- yarn.lock

相比 cherry-pick 拿到某个 commit 的所有文件,这个技巧可以只拿到想要的那一个文件。

2. 查看日志时过滤掉 merge commits

使用 merge 合并时会产生一个新的提交,有时候这个提交很烦人。如果你想要查看日志时过滤掉这些合并的提交,可以使用以下命令:

git log --oneline --no-merges

3. 重写最后一次的 commit message

如果你最近的一次提交中,commit 信息写的不好或者有错别字,可以用以下命令修改:

git commit -v --amend

这里的 -v 是可选的,它可以提过一些额外信息来帮助你描述 commit message

4. 清除所有未跟踪的变更

首先来解释一个概念:

如果你创建了一个新文件,这个文件之前不存在于 git 历史中,那么这个文件就是一个未跟踪的变更。为了跟踪这个文件,你需要将它提交到 git 中。

如果使用 git checkout . 则会清除所有已经跟踪的变更。而使用以下命令可以清除所有未跟踪的变更:

git clean -f -d

5. 打印一个可视化的 log

使用以下命令可以打印出可视化的 log

git log --pretty=oneline --graph --decorate --all

(译者注:凑合看,跟 sourcetree 的还是不能比~)

6. 向 Git 查询 changelog

此命令可以向 Git 查询在两个 commit 之间,都有谁做了哪些变更,看起来就像一个 changelog 一样

git shortlog ..HEAD

上面的 填写 commit 的 hash 值,就可以查出该 commit 和 HEAD 之间的变化,其中 .. 后面的 HEAD 也可以省略

你也可以用 git shortlog HEAD~20.. 取最近 20 个 commit 的记录

7. 查询指定日期的 log

你可能需要查询某两天之间的 git log,这时可以用 git log 命令配合 --since 与 --util 标识符

假如你想要查询 2016年2月10日 至 2016年2月19日 之间的日志,你可以运行:

git log --since='FEB 10 2016' --until='FEB 19 2016'

8. 列出所有 git aliases

有时候你可能忘记了之前设置的 git 别名,下面的命令虽不是 git 的功能,但是却能帮你找到所有的 git 别名

git config -l | grep alias | sed 's/^alias\.//g'

9. 查询包含某个关键字的 commits

如果你知道要找的代码具体写的是什么,或者知道某个特别的关键字,你就可以用它来搜索。

git log -S"config.menu_items"

本例中会查找所有包含 config.menu_items 的提交

10. 终极技能

git help -g

可以看到类似下面的 git 教程列表,通过 git help 即可在浏览器打开指定的教程网页,左边那一列即为 名称

The common Git guides are:

attributes 定义 Git 路径的属性

everyday 每天学点有用的 Git 命令

glossary 一个 Git 词汇表

ignore 指定 Git 忽略文件

modules 定义 Git 子模块

revisions 指定 Git 的修订版和范围

tutorial Git 的教程介绍 (for version 1.5.1 or newer)

workflows 一个推荐的 Git 工作流概述

欢迎关注我的公众号:码力全开(codingonfire)

信息 按顺序打印commit_提高效率的 10 个 Git 小技巧相关推荐

  1. 同一网段的服务器怎么能快速拷贝大文件夹,提高局域网内网速的小技巧

    提高局域网内网速的小技巧 局域网可以通过数据通信网或专用数据电路,与远方的局域网.数据库或处理中心相连接,构成一个大范围的信息处理系统.下面整理了一些提高局域网内网速的小技巧,希望对大家有所帮助! 1 ...

  2. 提高千倍效率的35个编码小技巧,老司机带你飞!

    点击关注公众号,实用技术文章及时了解 来源:henleylee.github.io/posts/2019/a780fcc1.html 前言 代码优化 ,一个很重要的课题.可能有些人觉得没用,一些细小的 ...

  3. 用 Git 和 Github 提高效率的 10 个技巧!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:segmentfault.com/a/11900000038 ...

  4. 巴别鸟10个使用小技巧,提高你的工作效率

    用巴别鸟,可以提高团队协作效率,用巴别鸟小技巧,可以提高你的效率.以下这10个小技巧你知道吗? 1.文件拖曳上传 上传文件,除了点击"新建"按钮,上传文件外,你还可以在右边的空白处 ...

  5. 网站设计者:提高网页打开速度的一些小技巧

    互联网带宽越来越宽,似乎让网页的加载速度得到了质的飞跃.其实不然,因为随着带宽的提高,网页上的对象也越来越多,因此加快网页打开速度还是一个重要的课题.加快网页的打开速度,有三个路径,一是提高网络带宽, ...

  6. pdffactory 打印字体_pdfFactory使用过程中的一些小技巧

    pdfFactory是一款无须通过Acrobat来创建PDF文件的打印机驱动程序,可以将其理解为一款虚拟打印机,我们可以借助它将多种其他格式的文件转为PDF文件. 在学习.工作中有可能需要经常使用pd ...

  7. android向手机发送信息,魅蓝note短信怎么发送?短信发送使用小技巧介绍

    现在国厂手机不是一般的火,比如:魅族,小米,华为等.魅族魅蓝NOTE系统有点个性化的短信功能跟一般手机有很大的不同,但跟普通的安卓系统也是有很多的共通之处.现在简单介绍一下,魅蓝note短信怎么发送以 ...

  8. 提高效率:10款好用的谷歌chrome浏览器插件、扩展程序

    Awesome Chrome Plugins 盘点那些好用的Chrome插件 1. CrxMouse Chrome™ Gestures 作用:高度可自定义的鼠标手势.超级拖拽.鼠标滚轮手势.遥感手势, ...

  9. 如何快速提高WiFi速度:1个小技巧提升2.5倍

    随着 IoT 行业的高速发展,智能化设备数量与日俱增,人们对于低功耗智能设备的需求正不断增多.Wi-Fi,作为低功耗设备常用的无线连接技术之一,普遍存在连云时间过长.延迟严重.性能不稳定等问题. 针对 ...

最新文章

  1. Go基础系列:构建go程序
  2. android自定义optionmenu,android - 自定义onOptionMenu外观 - 堆栈内存溢出
  3. Spark Run本地设计模式
  4. DataTable操作
  5. Delphi在代码编辑栏按回车无法换行
  6. DAY 34 进程通信、消费者模型和线程
  7. 十分钟倒计时flash_Flash 101-第6部分:最终倒计时
  8. 远程桌面客户端管理器RDCMan
  9. linux 监听 ipv6,zabbix 监控 ipv6
  10. 信息差暴利副业项目,让你日入500+
  11. 谷歌浏览器设置免跨域 Mac
  12. 服务器打不开网页dns错误是怎么回事,dns配置错误网页打不开
  13. 【贪心算法】POJ-1328 区间问题
  14. 微信小程序连接onenet控制RGB三色灯
  15. 力扣 179. 最大数
  16. 用gcc编译.cpp文件可能出现undefined reference to `__gxx_personality_v0'问题的解决
  17. leetcode 题解 904.水果成篮(Typescript)
  18. 联想小新蓝屏问题解决方法三步走!
  19. 【龙讯module小课堂】“光”怪陆离:PWmat计算光学性质(三)
  20. [二级C]专题习题-二维数组

热门文章

  1. 联想将推出全新系列笔记本
  2. 合格的前端不少,优秀的不多
  3. 36Kr鬼畜推送,没事别惹程序员
  4. linux发行版_7款颜值当道的Linux发行版操作系统
  5. 推荐一款高引超6000次的全基因组/全外显子组变异注释工具
  6. Macbook怎么关闭磁盘“未正确推出”提示
  7. 中国电子学会python等级考试一级
  8. 信息学奥赛一本通 提高篇 第一部分 基础算法 第2章 二分与三分
  9. 点到直线的距离c语言程序,点到线段的距离 题解(C++)
  10. frame中src怎么设置成一个变量_在 Figma 中如何选择 group(组)或 frame(画框)?...