# git-clone-yyds git-clone-yyds 实现了高性能代码克隆,底层使用了 copy-on-write 技术。 ![badge](https://cnb.cool/cnb/cool/git-clone-yyds/-/badge/git/latest/ci/git-clone-yyds) ![badge](https://cnb.cool/cnb/cool/git-clone-yyds/-/badge/git/latest/ci/status/push) ![badge](https://cnb.cool/cnb/cool/git-clone-yyds/-/badge/git/latest/code/vscode-started) ![badge](https://cnb.cool/cnb/cool/git-clone-yyds/-/badge/git/latest/ci/pipeline-as-code) ![badge](https://cnb.cool/cnb/cool/git-clone-yyds/-/badge/git/latest/ci/status/pull_request) ## Image - `cnbcool/git-clone-yyds:latest` ## 在 CNB 上使用 ```yaml # .cnb.yml main: push: - services: - git-clone-yyds stages: - name: ls script: ls -al - services: - git-clone-yyds stages: - name: ls script: ls -al ``` ## 高性能 首次之后,数秒内即可完成代码准备,支持并发。 ### 时间复杂度 `O(1)` 复制操作是瞬间完成的,无视仓库大小,并发安全。 ### 空间复杂度 `O(1)` 读共享,写隔离,存储空间不随并发数量膨胀。 ## 工作原理 1. **fetch** - 使用 `git fetch`,对 `.git缓存` 进行更新 2. **copy** - 使用 `OverlayFS` 对 `.git缓存` 进行复制,瞬间创建副本 3. **checkout** - 在副本上进行 `build` 4. **clean** - 构建结构后,删除副本 ![git-clone-yyds](./static/images/git-clone-yyds.png)