工作与个人配置 如何分开?
考虑一个场景:同一台电脑,既用于工作,又要用于个人事务,如何为其配置不同的email。如果这两个都同时位于github或gitlab上。又如何为其指定ssh的key??
假定 E:/work
是为工作服务的,其他都是个人事务,那么只需要为work文件夹指定不同的配置即可:
创建新的ssh key
执行命令:
1 |
|
提示输入文件名时,输入 ~/.ssh/id_work_rsa
,以便于和默认key进行区分。
创建 ~/.gitconfig-work
配置用户名,email,以及key, 内容如下
1 2 3 4 5 |
|
修改 ~/.gitconfig
当仓库位于work文件夹时,使用工作配置
1 2 |
|
注意:gitdir指定的路径区分大小写(即使在Windows下)。忽略大小写用
gitdir/i
。
其他
完成类似任务,除了这种做法,gitlab文档中还给出了其他做法:
默认分支: master vs main ?
好多年没在Github上创建新代码仓库,也没有更新公司内的gerrit2和gitlab。2年前就突然注意到,天天看到的master分支,竟已经被main取代...
再仔细看看,变更竟发生在4年前:
时间 | 事件 |
---|---|
2020年6月 | GitHub 宣布将把默认分支名改为 main |
2020年7月 | Git 2.28.0 版本发布,允许用户通过配置选项自定义默认分支 |
2020年10月 | GitHub 新建的仓库默认分支改为 main |
2020年10月 | GitLab 宣布从 2021 年起新建仓库使用 main 作为默认分支 |
2021年 | 其他git平台和工具(如 Bitbucket、Azure DevOps)开始支持 main 作为默认分支。 |
在此之前:
时间 | 事件 |
---|---|
2014年 | Django 宣布将 master-slave 替换为 leader-follower 或 primary-replica 。 |
2017年 | Redis 将 master-slave 替换为 primary-replica 。 |
2020年 | Black Lives Matter 运动引发对种族不公正和系统性种族主义的广泛讨论,推动科技行业重新审视用词。 |
好吧,更名原因竟然和主人与 奴隶有关。尽管main与master短也是一个可以说的优势。
Windows版Git的 openssh
在 Git for Windows 2.33.1 版本中,捆绑的 OpenSSH 升级到了 8.8p1 版本。OpenSSH 8.8 默认禁用了使用 SHA-1 算法的 ssh-rsa 密钥。
如果不幸,某些老的网站还在用的旧版的 RSA 密钥,并且默认使用 ssh-rsa 签名算法, 这会造成连接失败。
如果不能使用新算法生成密钥对,需要修改ssh配置文件~/.ssh/config
:
1 2 3 |
|
或者只针对特定网站
1 2 3 4 |
|
Git for Windows 版本 | OpenSSH 版本 | 关键变化 | 发布时间 |
---|---|---|---|
2.20.1 | OpenSSH 7.9p1 | 初始版本 | 2018年12月 |
2.23.0 | OpenSSH 8.0p1 | 更新到 8.0 版本 | 2019年8月 |
2.30.0 | OpenSSH 8.4p1 | 更新到 8.4 版本 | 2021年1月 |
2.33.1 | OpenSSH 8.8p1 | 禁用了使用 ssh-rsa 的 RSA 签名 |
2021年9月 |
Windows版Git的ssl
简单记录一下
Git for Windows 版本 | OpenSSL 版本 | 关键变化 | 发布时间 |
---|---|---|---|
2.20.1 | OpenSSL 1.0.2p | 使用 OpenSSL 1.0.2 系列 | 2018年12月 |
2.23.0 | OpenSSL 1.1.1c | 升级到 OpenSSL 1.1.1 系列 | 2019年8月 |
2.30.0 | OpenSSL 1.1.1i | 持续更新 1.1.1 系列 | 2021年1月 |
2.42.0 | OpenSSL 3.0.11 | 升级到 OpenSSL 3.0 系列 | 2023年9月 |
参考
- github/renaming: Guidance for changing the default branch name for GitHub repositories
- https://www.openssh.com/txt/release-8.8
- https://git-scm.com/docs/git-config#_conditional_includes
- https://itnext.io/how-to-handle-multiple-ssh-keys-with-gitlab-27f7cf2e77ed
- https://docs.gitlab.com/ee/user/ssh.html#use-different-accounts-on-a-single-gitlab-instance