Git
与远程仓库保持一致
git fetch --all && git reset --hard origin/master && git pull
按需克隆(部分克隆)
当仓库体积较大时,就可以考虑使用部分克隆来提升开发过程中的效率及体验.
使用blob:none
选项
git clone --filter=blob:none --no-checkout git@codeup.aliyun.com:6125fa3a03f23adfbed12b8f/linux.git
微服务单根代码仓
近年来,越来越多项目选择了使用微服务的架构,将大单体服务拆分为若干个内聚化的微型服务,每一个服务由一个微型团队进行维护,团队间开发可以并行、互不干扰,团队间协同复杂度大幅降低。
单根代码仓,公用代码更易于共享,项目文档、流程规范可以集中于一处,也更加易于实施持续集成。配合部分克隆配合稀疏检出特性,可以解决开发人员只关注项目中某一部分,他也不得不克隆整个仓库的问题。
Example
monorepo
├── README
├── backend
│ └── command
│ └── command.go
├── docs
│ └── api_specification
├── frontend
│ ├── README.md
│ └── src
│ └── main.js
└── libraries
└── common.lib
- 首先进行部分克隆
git clone --filter=blob:none --no-checkout https://codeup.aliyun.com/61234c2d1bd96aa110f27b9c/monorepo.git
-
开启稀疏检出
cd monorepo
git config core.sparsecheckout true
echo "backend/*" > .git/info/sparse-checkout
-
检出指定目录
更详细的关于部分检出可参考 部分检出
提交历史
git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short
Git LFS
# Skip smudge - We'll download binary files later in a faster batch
git lfs install --skip-smudge
# Do git clone here
git clone ...
#Fetch all the binary files in the new clone
git lfs pull
#Reinstate smudge
git lfs install --force
git show-ref --tags "refs/tags/$tag"