本篇内容主要讨论私密的 Git 项目,需要一个 Git 远程仓库来完成团队的合作。如果是完全公开的开源项目,那么 GitHub 平台会更主流一些,项目的曝光度也更高一些。
一、 Git 远程仓库的选择
在科研代码(私密项目)的托管方案的选择中,GitHub、Gitee、GitLab 和 Gitea 等 Git 远程仓库各有优劣。这里做个大概的分析,并给出 Git 项目远程仓库方案的推荐,仅供参考。
其中,
- GitHub 和 Gitee 是第三方云托管(cloud-hosted),GitHub 的公司是 “微软”,Gitee 的公司是 “开源中国”。Gitee 数据在中国,符合国内法规,且网络比较好,无需 FQ。
- GitLab 和 Gitea 是自托管(self-hosted)开源软件,可以自行安装部署在服务器上,然后通过 IP 地址或域名来访问。Gitea 相对来说比较轻量级,适合小团队,已经可以实现大部分的常见功能。
综上,如果是第三方托管,可以考虑选择 Gitee 平台;如果是自托管搭建,可以考虑 Gitea 开源软件。
Gitee 网址:https://gitee.com。Gitea 网址:https://about.gitea.com。
以下继续对 Gitee 平台和 Gitea 开源软件分别做个分析:
- Gitee。优点是:开箱即用、安全性较高、符合中国法规。缺点是:外网 IP 下是无法访问 Gitee 的,且代码对 “开源中国” 公司是透明的。
- Gitea。优点是:数据只保留在服务器上,适合对数据隔离要求极高的场景,如军工、机密项目。缺点是:服务器的环境搭建比较繁琐,且数据安全依赖于开源软件的可靠性和服务器的个人管理水平。
总之,Gitee 平台和 Gitea 开源软件都是可以选择的方案,Gitee 的使用会更简单一些。
二、关于是否使用多个远程仓库的讨论
Git 项目也可以同时绑定和推送到多个 Git 远程仓库,但这里不推荐这么做,主要原因有:
- 对于公开项目,推送到多个 Git 平台上,可以增加可访问性和曝光度,但如果项目是私密项目,则没有必要推送到多个远程仓库中。
- 每次完成修改,如果需要同时 Git 推送到多个远程仓库,会增加了推送、拉取等步骤的复杂性。如果遗漏了推送,那么会导致不同远程仓库的版本混乱,不知道拉取哪个远程仓库。
- Git 推送到多个远程仓库平台,也会额外地增加代码、文档等数据泄露的风险。例如,增加推送到 GitHub,微软是有权限访问的,即使他们通常不会那样做。对于涉密的内容,不推荐推送到国外服务器上。
- 因为在本地始终有一个 Git 项目的版本,所以也不用担心单一远程仓库所产生的数据丢失的风险。
三、更换 Git 远程仓库的步骤
如果使用了某个 Git 远程仓库,过了一段时间想换成另外一个 Git 远程仓库,那么可以这么操作:
- 本地复制/备份一份 Git 项目文件夹,然后再进行操作,防止破坏原有的 Git 环境。
- 在本地项目中查看远程仓库名称和对应链接:git remote -v
- 从当前项目中删除指定的远程仓库,例如:git remote remove origin
- 管理员在新的 Git 远程仓库账号上新建一个空仓库,在本地项目中绑定该远程仓库的地址,例如:git remote add origin https://github.com/username/repository.git
- 管理员使用命令 git push -f origin master 强行覆盖远程的空仓库,完成推送。
- 让项目参与者在新平台上注册登录后,管理员在新的远程仓库上邀请项目参与者,并赋予权限。
Git 命令可以参考这篇博文:Git常用命令。
【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com】