0%

git备忘录

Git LFS

Git LFS(Large File Storage,大文件存储)协议,可以把音乐、图片、视频等指定的任意大文件资源存储在Git仓库之外,对于使用者而言,类似在操作一个完整的Git仓库,非常方便。通过将大文件存储在Git原有的数据结构之中,可以减小Git仓库本身的体积,使克隆Git仓库的速度加快,也使得Git不会因为仓库中充满大文件而损失性能。

a diagram showing how Git LFS works

安装

1
2
3
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install

配置追踪文件

1
2
3
4
5
#追踪所有后缀名为“.mp4”的文件:
git lfs track "*.MP4"

#查看已追踪的文件,已经追踪的文件保存在“.gitattributes”中
git lfs track

提交大文件

提交代码时需要将“.gitattributes”文件也提交到仓库,提交完成后,就可以和原有操作一样使用git的提交功能。

1
2
3
4
5
#提交
git push origin master

#查看 LFS 跟踪的文件列表
git lfs ls-files

Gitlab CI/CD

GitLab CI/CD 是一个内置在GitLab中的工具,用于通过持续方法进行软件开发:

  • Continuous Integration (CI) 持续集成
  • Continuous Delivery (CD) 持续交付
  • Continuous Deployment (CD) 持续部署

持续集成的工作原理是将小的代码块推送到Git仓库中托管的应用程序代码库中,并且每次推送时,都要运行一系列脚本来构建、测试和验证代码更改,然后再将其合并到主分支中。

持续交付和部署相当于更进一步的CI,可以在每次推送到仓库默认分支的同时将应用程序部署到生产环境。

img

.gitlab-ci.yml

了使用GitLab CI/CD,你需要一个托管在GitLab上的应用程序代码库,并且在根目录中的.gitlab-ci.yml文件中指定构建、测试和部署的脚本。一旦你已经添加了.gitlab-ci.yml到仓库中,GitLab将检测到该文件,并使用名为GitLab Runner的工具运行你的脚本。该工具的操作与终端类似。这些脚本被分组到jobs,它们共同组成一个pipeline。一个最简单的.gitlab-ci.yml文件可能是这样的:

1
2
3
4
5
6
before_script: 
- apt-get install rubygems ruby-dev -y

run-test:
script:
- ruby --version 6

before_script属性将在运行任何内容之前为你的应用安装依赖,一个名为run-test的job(作业)将打印当前系统的Ruby版本。二者共同构成了在每次推送到仓库的任何分支时都会被触发的Pipeline(管道)。

Runner

在GitLab中,Runner运行你定义在.gitlab-ci.yml中的作业(job)。一个Runner可以是一个虚拟机、物理机、docker容器,或者一个容器集群。GitLab与Runner之间通过API进行通信,因此只需要Runner所在的机器有网络并且可以访问GitLab服务器即可。在成功配置Runner以后,你应该可以看到你最近的提交的状态 。

Git LFS使用_代码托管 CodeHub_用户指南_更多Git知识_华为云 (huaweicloud.com)

GitLab CI/CD - 废物大师兄 - 博客园 (cnblogs.com)

Git初始化

设置用户名

1
2
git config --global user.name "username"
git config --global user.email useremail@xxx.com

设置代理

1
2
git config --global https.proxy http://127.0.0.1:1080
git config --global https.proxy https://127.0.0.1:1080

记住github/gitlab账号密码

1
git config --global credential.helper store