Git 相关
自动保存用户名密码
git config --global credential.helper store
用户名名密码会以明文的方式保存在 ~/.git-credentials ,十分不安全。
配不配 --global 其实没有太大区别,因为只要有一个项目通过 Git 和远程仓库交互过,你的密码就明文保存了,不安全。
可将密码换成 access_token,这样好处是密码不会明文泄露被二次利用(可能你所有网站的密码都是这个),坏处是这台免登陆的电脑,依然成为我们代码仓库的分布式安全漏洞。
删除全局配置
git config --global --unset credential.helper
全局的配置文件在 ~/.gitconfig 直接进去编辑会更快。
使用 access_token 访问远程仓库
git clone https://:[email protected]/group_name/project_name.git
无论是项目或是个人的 access_token 都对用户名没有要求,因此 用户名:密码 简写成 :access_token 即可。
当然 access_token 要提前去 gitlab 创建一个,注意只勾选 read_repository 权限即可。
使用 deploy_token 在生产环境拉取代码
项目部署的话,可以用 deploy_token(GitLab 13 开始支持)。
- 只能拉取代码,不能访问其它仓库相关接口,权限控制更精准。
- 并且在 GitLab 中有专门的功能页进行管理,一目了然。
- 创建的 deploy_token 强制有用户名,因此必须
用户名:token的形式使用。
https://gitlab.yitasoft.com/help/user/project/settings/project_access_tokens
使用 reset 做版本回退
每次都使用 reset 直接回至指定版本,避免用 revert 只撤销某个 commit,会引发很多问题。
对于中小型公司/团队,以及中小型项目来说,重点在于建立简单高效的工作流,CI/CD 需有完备的测试验证环节。测试不只是代码层面的自动化测试,还可以包括新版本部署后的灰度测试、人工手动测试验证等环节。
一次只集中处理一个提交。每一个 commit 都要完整地走完整个工作流,禁止并行。