熟悉 Git 的小伙伴应该都知道随着 Git 仓库维护的时间越来越久,追踪的文件越来越多,git 存储的 objects 数量会极其庞大,每次从远程仓库 git clone 的时候都会墨迹很久。如果我们不小心 git add
了一个体积很大的文件,且 git push
到了远程仓库,那么我们 git clone
的时候也会很慢。
看一下 GitHub 上的 microsoft/vscode 仓库,都有 九万多个 commit 了,可想而知 objects 的数量应该很恐怖,尝试 clone 一下(一百多万个 objects):
之前一直想将一个 Git 仓库放到另一个 Git 仓库,有 Maven 多模块项目(Maven Multimodule Project)和 Gradle 多项目构建(Gradle Multiproject Build)那味儿。Git 这么骚,肯定也可以。“扫”了多个开源仓库,Get 到了 Git submodule
可以做这种操作,水篇文章记录波。
最近一波重装系统啥都没了,最常用的 Git 配置肯定得安排回来的。记得之前给 git 的 commit 加了个签名,回想下为什么要给 commit 做下签名?因为它能让 GitHub 的 commit 历史更帅?看下加签名之前是怎么样的:
受传统提交规范和 Angular 约定的启发,让我们来解释语义化提交术语,并演示提交信息的实际示例。
许多项目决定以某种约定方式来标准化它们的提交信息。这种做法并不是新出现的,但在最近几年中越来越多地得到了应用。而且很可能您已经在某些项目中遇到过这样的提交消息。
洞悉技术的本质,可以让我们在层出不穷的框架面前仍能泰然处之。用了那么久的 Git,不懂点内部原理,那可不行!懂点原理可以让我们遇到问题的时候能够更好更快的理清解决问题的思路。
要真正读懂本文可能需要以下基础:
在开始之前,让我们先抛出几个问题,然后一一解决、回答它们
Tip:在本地要安装好Git,官网:https://git-scm.com/
一个学习Git的好地方:https://try.github.io/
在线闯关实战,边练边学的好地方:https://learngitbranching.js.org/
1 | # 步骤 |