相见恨晚,Git这些功能太好用了

117 篇文章 5 订阅
50 篇文章 5 订阅

程序员宝藏库https://gitee.com/sharetech_lee/CS-Books-Store

作为一名开发者,想必绝大多数同学都无法绕开Git。

作为一款工具,我认为它和word、powerpoint、Excel这些办公工具一样。

对于一部分同学,会一些基本的用法,能够解决日常工作中遇到的简单问题。对一部分同学,能够深入了解并学习这款工具,在工作中很多方面能够更高效的处理面对的问题。

git也是这样,很多同学可能大多数时候用到的就是克隆、提交、推送、合并这些基础操作,每天按部就班、反反复复的执行这几个命令,也没有考虑过如何更加高效的使用。

但是,如果仔细琢磨,会发现git使用过程中有很多可以提升效率的地方,即便是很简单的场景也可以用到。

今天,就来给大家介绍一些Git使用过程中非常好用的「奇技淫巧」!

1. 编辑器

git commit应该大多数同学都会用到,这是一个非常基础的操作。

当我们提交的信息比较少时,可以这样:

img

然而,当写的提交信息比较长时就没这么简单了。需要带上标题、描述等。这时候,用编辑器会更加合适。

但是,vim时git默认的文本编辑器,作为初学者,git还没熟练呢,再加上vim无疑是增大了学习成本。

这时候我们可以更改默认编辑器,可以执行下面命令:

img

确保在终端中运行 能够打开编辑器,例如 vim 、 nano 或 VS Code。

img

对于 VS Code,需要添加另一个参数来指示 git 等待当前编辑器窗口关闭再启动新窗口。

2. 配置文件

Git 有 3 个配置文件:

  • 系统上的每个用户单独一个,可以使用 --system 设置
  • 针对特定用户,可以使用 --global 进行设置
  • 用于正在使用 git 的仓库库,可以使用 --local 进行设置

这些文件相互覆盖,即,当使用 --local 设置的变量将覆盖全局配置,而后者又将覆盖系统配置。

我们在设置名称、电子邮件或编辑器等内容时使用 —global,以便它反映在我们的每个 git 存储库中。

要检查当前的设置,可以运行:

img

3. 浅克隆

如果你正在合作开发一个需要时间和内存来克隆的大型代码仓库,那么浅克隆会非常有帮助。

img

上图中,time 可以用来检查一个命令运行了多长时间,du 可以用来检查一个文件夹消耗了多少内存。

从上面我们可以看出,克隆fastai repo大约需要28秒、902M内存。

现在让我们尝试只克隆最新的提交:

img

克隆不到 2 秒,仅消耗 1.1M 内存。

4. 简化Git状态

git status 是一个非常有用的命令,用于检查存储库中所有文件的状态,它们是否未跟踪、已修改、暂存等。

但是,如果你有很多文件,例如,在重新格式化一堆文件的存储库中运行预提交,输出可能会变得冗长:

img

对于这种问题,我们可以使用 --short 或 -s 来简化输出:

img

这样看是不是清晰多了?

  • M- 已被 git 跟踪的文件,现在已被修改
  • A- 已添加到暂存区的文件
  • ??- 未跟踪的文件/文件夹

5. 忽略

假设你正在从事深度学习项目,并且你有包含数据的 train_images 和 test_images 文件夹,在提交仓库时,肯定不希望把这些数据一起提交上去吧?

但是,在名为 assets 的文件夹中也有图像,其中包含要在 GitHub README 中显示的图像:

img

针对这种问题 ,我们可以把要忽略的内容添加到.gitignore文件中,这样在提交时就会被忽略:

img

但是,可能在一堆不同的位置有图像,这样可以改用正则表达式:

img

这会递归地搜索文件夹和子文件夹中的图像并忽略所有这些图像。 但是,请记住我们不想忽略文件夹 assets 中的图像。

img

我们可以在 .gitignore 中使用 ! 排除掉不需要被忽略的内容。

6. 查看Git日志

如果你想查看有限数量的提交,你可以使用 - 参数:

img

我们还可以使用 --since 或 --until 根据时间段过滤掉不需要看的提交信息:

img

除此之外,还可以使用 --grep 或 —author 来搜索指定提交:

img

从前面介绍的6个Git用法可以看出,它们并不是非常高深的用法,使用难度也不高。之所以有些同学会用、有些同学不会用,主要因为信息差,或者没有考虑到这些场景。

然而,通过这些「奇技淫巧」可以大大提升我们使用Git的体验,也能够极大提高工作效率。

建议大家有空可以多浏览Github,有很多好用的开源免费工具。但是,目前Github上项目多如牛毛,而且刷榜现在也非常严重,想要找到优质的项目变得越来越难。这里,给大家推荐Github上一个非常不错的项目《DevWeekly》,这个项目每周都会精挑细选一些优质的开源项目,涵盖C++、JAVA、JavaScript、Python、Go等不同编程语言。此外,还有一些开源工具、优秀的技术文章,而且考虑到很多同学访问Github不方便的问题,我还特意同步到了Gitee,建议大家看一下:

https://gitee.com/sharetech_lee/DevWeekly

hello,大家好,我是Jackpop,重点大学本科毕业后保送到哈工大计算数学专业读研,有多年国内头部互联网、IT公司工作经验,先后从事过计算机视觉、推荐系统、后端、数据等相关工作。如果同学们在升学考研、职业规划、高考志愿、简历优化、技术学习等方面有困惑,欢迎大家前来咨询!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值