专栏首页机器学习算法与Python学习10种Git技巧,让你省时省力又省心!

10种Git技巧,让你省时省力又省心!

1. 从另一分支切换单个文件

大家是否曾销毁文件只为能重新开始? 或需要在另一分支的某文件中进行更改?而git指令可以实现从另一分支切换文件。

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

同时,也可以使用相同的技巧从特定提交项切换出某个文件。

git checkout 9146367 -- yarn.lock

若cherry-pick能够筛选出不需要的文件,那么这就是十分有效的技巧了。

2. 查看日志时无需合并提交

合并提交常常令人头疼。事实上,有些人宁可不用合并指令,因为合并提交真是太讨厌了。

就个人而言,笔者认为合并指令是项目历史记录的重要组成部分,不应该在工作流中唯恐避之不及。

也就是说,可以使用此标记来过滤合并提交以查看项目的历史记录。

git log --oneline --no-merges

3. 改写上一个提交信息

若不小心提交了带有拼写错误或误导性提交信息的内容时,这个方法就派上用场了。

git commit -v --amend

-v是可选项,但由于其展示了许多更改相关的信息,笔者还是比较喜欢这个的,,有助于编写更具描述性的提交消息。

4. 移除所有未跟踪更改

尽管不言而喻,但以防有人对该概念不熟悉:

如果创建一个新的文件,且该文件在git历史中并不存在,那么就相当于进行了一个未跟踪更改。需要提交回购协议才能开始追踪该文件。

如果提交过程中改变了主意,随后又想撤销先前的更改,此时,git checkout可用于移除先前所有的追踪更改,但是未跟踪更改却仍然会四处浮动。为解决这个问题, git clean应运而生。

git clean -f –d

5. 输出酷炫的可视化日志

虽然这点只会让日志看起来很酷,但就可视化所有长期分支而言,这点还是十分有用的。

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

试试吧。

6. 向git请求一个变更日志

如果想知道更改内容和更改者的相关简要说明,可以向git申请变更日志类似的文件。

git shortlog <commit>..HEAD

本例中,应将<commit>替换为希望在日志开始时执行的提交。大体上,用git shortlog eafbc3c.. HEAD的意思是,“让我看看从提交eafbc3c到现在发生了什么变化。”

按提交作者将短日志分组并显示每个提交消息的首行内容。若提交消息编写完善,则可很清楚地了解每个提交的实际操作。

利用一些巧妙的技巧,如git shortlog HEAD~20..,以此来获取最近20次提交的短日志。

7. 查看特定日期范围的日志

类似地,可能需要查看两天内回购的变化情况。

幸运的是,git可以实现这点。git log提交接受——以-since和-until作为标记。

所以若想知道2016年2月10日至2016年2月19日期间Solidus发生了什么,即可运行:

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

现在,就可以看到墨菲在二月中旬非常活跃。

8. 列出所有git别名

有时可能需要为一些指令添加别名,随后就忘记了,或者使用的共享配置就已经定义了一些别名。

这是笔者无意中发现的一个技巧,尽管这不是git独有的特性,但是git config指令确实发挥着它的功效,为我们所利用。

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

试试吧,看是不是有忘记的别名!

9. 搜索包含关键字的提交

如果确切地知道要查找的是哪段代码,或者确切地知道需要在哪些关键字上查找更改,则可以按代码搜索日志。

此时git会提供一个提交列表,而该列表以某种方式影响了包含搜索字符串的代码或文本。

git log -S"config.menu_items"

在本例中,笔者找到一个提交列表,而该提交列表以某种方式操纵了字符串config.menu_items。

10. git教程超级机密列表

不是秘密,而是超级机密:

git help -g

Git是一个十分强大的工具,充满许多巧妙的技巧。这个列表不够全面,所以大家可多做一些研究并阅读git相关文档。

本文分享自微信公众号 - 机器学习算法与Python学习(guodongwei1991)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 20 分钟教你搞懂 Git!

    尽管每天你都会用到Git,但也有可能搞不懂它的工作原理。为什么Git可以管理版本?基本命令git add和git commit到底在干什么?

    昱良
  • 看我Git 72变,GitHub发布4已超过8000星

    大家在用Git写东西的时候都用过 “回撤” 这个功能,但是回撤只能回撤几步,假如想要找回我三天之前的修改,光用 “回撤” 是找不回来的。

    昱良
  • 干货 | 详解scikit-learn中随机森林(RF)和梯度提升决策树(GBDT)的参数调优

    关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 转自:博客园 作者:jasonfre...

    昱良
  • 你可能不知道的15个 Git 命令[每日前端夜话0xF5]

    Git 有时可能会令人生畏。因为有太多的命令和细节需要学习。不过虽然文档的内容很多,但阅读起来还是很轻松的。一旦你克服了最初不堪重负的感觉,就会感觉到有明显进展...

    疯狂的技术宅
  • Git撤销&回滚操作

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

    奋飛
  • 常用的Git Tips

    一、Configuration:配置 列举所有的别名与配置 git config --list Git 别名配置 git config --global ali...

    貟王軍
  • Git 实用命令小抄

    如果你觉得 git 很迷惑人,那么这份小抄正是为你准备的!请注意我有意跳过了 git commit、git pull/push 之类的基本命令,这份小抄的主题是...

    KEN DO EVERTHING
  • Git使用总结

    Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

    轩辕小子
  • Github删除某个文件的所有提交记录

    Cannot rewrite branches: You have unstaged changes.

    Java那些事儿
  • 硬核!IDEA 中使用 Git 完整入门教程!

    建议: 这个是选择行结束符, windows与linux行结束符不一致; 建议选择第一个, 这样git会自动转换;

    江南一点雨

扫码关注云+社区

领取腾讯云代金券