Git
Git
Git概述
Git是一个免费的开源的分布式版本控制系统.
Git易于学习,占地面积小,性能极快.
版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统.
Git常用命令
Git首次安装必须设置用户签名,否则无法提交代码.注意,这个签名随便设置.
删除操作
从暂存区和工作区删除:
1
2git rm xxx # 从暂存区和工作区删除
若删除之前已经修改过并且已经放到暂存区的话,必须加上-f选项从暂存区移除,但是想保留在工作区中:
1git rm --cached xxx查看详细版本记录
1
2git log # 查看详细版本记录
git log --pretty=oneline # 简化输出
Git分支
1 | |
什么时候会出现合并冲突?
当两个分支对同一个位置有着完全不同的修改.需要人为决定合并
1 | |
上半部分是当前分支的修改,下半部分是待合并分支的修改
手动用vim等编辑器修改后,直接git commit -m "xxx" 后面不能有文件名,否则报错
Git团队协作
Git远程仓库
1 | |
SSH免密登录
1 | |
GitLab
什么是CI/CD?
CI:持续集成
CD:连续交付
CI
中心思想是每一次push到github的时候,都会触发一次脚本执行,进行测试编译部署等
Runner
GitLab Runner是一个开源项目,用于运行作业并将结果发送到GitLab
特点:
- 同时执行多个作业
类型:
- shared共享类型 运行整个平台项目的作业
- group 项目组类型 运行特定group下所有项目的作业
- specific项目类型 运行指定的作业
状态:
- locked 锁定状态,无法运行项目作业
- paused 暂停状态,暂时不会接收新的作业
步骤
注册:
gitlab-runner register(此为交互式)1
2
3
4
5
6
7
8
9
10
11sudo gitlab-runner register \
--non-interactive \ #代表非交互模式
--url "http://192.168.221.133/" \
--registration-token "QHkFLuzFHobsdksAmw8s" \
--executor "shell" \
--description "docker-runner" \
--maintenance-note "this is a test" \
--tag-list "Test" \
--run-untagged="true" \
--locked="false" \
--access-level="not_protected"其他命令
1
2
3
4
5
6gitlab-runner list # 列出保存在配置文件中的所有运行程序
gitlab-runner verify # 检查注册的runner是否可以连接
gitlab-runner unregister --name xxx # 注销runner
gitlab-runner unregister --all-runners # 注销所有runner
gitlab-runner unregister --url xxx --token xxx # 使用令牌注销
gitlab-runner status # 查看gitlab runner服务的状态
如何检查/gitlab-ci.yml语法是否正确?
在项目中->CI/CD->CI Lint
Pipeline语法
1 | |
可能遇到的问题:
并行无法执行。需要修改runner每次运行的作业数量,默认为1。vim /etc/gitlab-runner/config.toml
concurrent = 10更改后无需重启
1 | |
代理
1
2
3
4
5
6
7
8
9设置代理:
git config --global http.proxy http://<your proxy address>:<port>
git config --global https.proxy https://<your proxy address>:<port>
ServicePointManager 不支持 socks5 方案的代理。
查看当前代理:
git config --list
删除代理:
git config --global --unset http.proxy
git config --global --unset https.proxy
大文件上传github
Git LFS 的工作原理是将大文件转化为指针文件存储在 Git 仓库中,而将大文件本身存储在外部的 LFS 存储区中。这样,每当从 Git 仓库中克隆或拉取文件时,Git LFS 只会下载指针文件,但不会下载实际的大文件。这种方式可以大大减少克隆仓库的时间和仓库体积,提高Git仓库的可维护性。
git lfs install
git lfs track xxx
git add
Token与SSH Key
如果使用SSH协议push代码,则需要使用SSH key,如hexo blog
如果使用HTTPS协议push代码,则需要使用token或者PAT,如常见的仓库
测试SSH连接:
ssh -T git@github.com
学习链接
GitLab
https://blog.csdn.net/sinat_17775997/article/details/115700703
https://www.bilibili.com/video/BV18y4y1S7VC/
https://www.bilibili.com/video/BV1YP411N7sT