Git LFS
Git LFS(Large File Storage,大文件存储)协议,可以把音乐、图片、视频等指定的任意大文件资源存储在Git仓库之外,对于使用者而言,类似在操作一个完整的Git仓库,非常方便。通过将大文件存储在Git原有的数据结构之中,可以减小Git仓库本身的体积,使克隆Git仓库的速度加快,也使得Git不会因为仓库中充满大文件而损失性能。
安装
1 | curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash |
配置追踪文件
1 | #追踪所有后缀名为“.mp4”的文件: |
提交大文件
提交代码时需要将“.gitattributes”文件也提交到仓库,提交完成后,就可以和原有操作一样使用git的提交功能。
1 | #提交 |
Gitlab CI/CD
GitLab CI/CD 是一个内置在GitLab中的工具,用于通过持续方法进行软件开发:
- Continuous Integration (CI) 持续集成
- Continuous Delivery (CD) 持续交付
- Continuous Deployment (CD) 持续部署
持续集成的工作原理是将小的代码块推送到Git仓库中托管的应用程序代码库中,并且每次推送时,都要运行一系列脚本来构建、测试和验证代码更改,然后再将其合并到主分支中。
持续交付和部署相当于更进一步的CI,可以在每次推送到仓库默认分支的同时将应用程序部署到生产环境。
.gitlab-ci.yml
了使用GitLab CI/CD,你需要一个托管在GitLab上的应用程序代码库,并且在根目录中的.gitlab-ci.yml文件中指定构建、测试和部署的脚本。一旦你已经添加了.gitlab-ci.yml到仓库中,GitLab将检测到该文件,并使用名为GitLab Runner的工具运行你的脚本。该工具的操作与终端类似。这些脚本被分组到jobs,它们共同组成一个pipeline。一个最简单的.gitlab-ci.yml文件可能是这样的:
1 | before_script: |
before_script属性将在运行任何内容之前为你的应用安装依赖,一个名为run-test的job(作业)将打印当前系统的Ruby版本。二者共同构成了在每次推送到仓库的任何分支时都会被触发的Pipeline(管道)。
Runner
在GitLab中,Runner运行你定义在.gitlab-ci.yml中的作业(job)。一个Runner可以是一个虚拟机、物理机、docker容器,或者一个容器集群。GitLab与Runner之间通过API进行通信,因此只需要Runner所在的机器有网络并且可以访问GitLab服务器即可。在成功配置Runner以后,你应该可以看到你最近的提交的状态 。
Git初始化
设置用户名
1 | git config --global user.name "username" |
设置代理
1 | git config --global https.proxy http://127.0.0.1:1080 |
记住github/gitlab账号密码
1 | git config --global credential.helper store |