首页 > 其他分享 >掌握 Git 远程仓库,让团队协作更上一层楼

掌握 Git 远程仓库,让团队协作更上一层楼

时间:2024-09-26 10:24:34浏览次数:7  
标签:git remote 仓库 -- Git 更上一层楼 协作 远程

介绍下远程仓库的概念、常见的远程仓库以及常见的操作。

什么是远程仓库

目前,我们的版本库都是在自己的电脑上,并不方便给别人访问,更别说一起维护一个版本库了;如果我们的电脑关机了(或者坏了),岂不是别人就没法干活了?

因此,我们通常需要找一台服务器,存放我们的版本库;然后,其他人就可以访问并克隆这个原始的版本库,并且每个人的版本库都是完整的,不存在主次之分。

Git 仓库托管服务网站

如果为了学习 Git 而搭建一个 Git 服务器是没必要的,有很多网站都提供了 Git 仓库托管服务,我们可以注册后使用:

  • GitHub:全球最大的 Git 仓库托管服务网站,2008 年上线,为开源项目提供 Git 存储,无数开源项目迁移到了 GitHub,例如 JQueryPHPRuby
  • Gitee:由于 GitHub 是国外的,在国内有种不可抗力的因素导致经常访问失败,因此国内也上线了一个代码托管平台,那就是 Gitee
  • GitLab:在工作中,我们的项目大部分是公司内的,不太可能开源(例如银行内的项目,源代码保护的非常好),因此有必要公司自己内部搭建一个 Git 仓库,通常使用的就是 GitLab,它是一个开源项目。

关于源代码保护,这里不得不提一下,大部分科技公司都是靠自己的项目来赚钱的,不太可能开源,而且开源了还有被发现漏洞和攻击的风险,所以一般都是用 GitLab 这种可以在内网使用的工具。读者可以参考下华为内是怎么保护的,我在国企工作过,可以说这些经历非常类似了:

百度、阿里、腾讯之类的大公司用 Git 吗?他们如何管理源代码? - 知乎 作者:jiakon

华为用的是 SVN。

SVN 的权限控制,可以控制到目录的。你可以访问到哪个级别的代码,都是可以控制的。

另外,以华为的内网安全措施,周身遍布摄像头,电脑遍布监控软件,访问外网严格受限,所有 USB 接口和网口贴封条,封条上还有什么镭射喷码之类的东西,封条被撕过是可以看出来的,安全管理员定期检查封条。根据安全等级区分绿区、黄区、红区,区域之间物理隔离,访问安全级别更高的区要通过专用远程登录软件,连截屏软件都被禁用。这是一个为了信息安全不惜牺牲效率的企业。这么严格的管控措施,你还想偷偷拷走代码?当然,曾经有神人做到了,比如通过示波器的 USB 口。现在的安全措施又比我在的时候严格了很多。这种事情越来越不可能发生了。

一个在华为待了 9 年的人,离职时都忍痛放弃拷走多年的照片,这是即使走流程申请都几乎不可能做到的事情。谁知道,你图片中是否隐藏了什么保密信息呢?

另外,即使你不小心拥有了不该有的权限,你下载了一些不该拥有的文件。电脑上还有个监控软件,叫关键资产扫描。这个软件也是不能关掉的。安装时,会全盘扫描一次你的电脑,每周还会定时全盘扫描一次,看看你电脑中是否有超出你权限之外的文档和代码,如果有,要么删除,要么申请权限。

有很多不但视源代码如生命,而且视员工为窃贼的公司,会在版本控制系统里设置一套完善的权限控制,每个人是否有读写权限会精确到每个分支甚至每个目录下。因为 Git 是为 Linux 源代码托管而开发的,所以 Git 也继承了开源社区的精神,不支持权限控制。不过,因为 Git 支持钩子(hook),所以,可以在服务器端编写一系列脚本来控制提交等操作,达到权限控制的目的。Gitolite 就是这个工具。--引自 搭建 Git 服务器 - 廖雪峰的官方网站

另外,如果你访问不了 GitHub,可能是某种不可抗力的问题,请自行搜索解决,可参考我的下一篇博客。

创建公钥和私钥

我们本地 Git 仓库和远程仓库之间的传输是通过 SSH 协议加密的,因此需要创建公钥和私钥。

PS:公钥和私钥其实就是两个字符串,用于身份认证;我们先将公钥配置到远程仓库上,然后提交的时候通过 SSH 协议来加解密数据,验证我们的身份。感兴趣的同学可以学习下:非对称加密算法 - 廖雪峰的官方网站

Git 也支持其他协议,例如 HTTPS,但是不太安全,并且比较慢,较少使用。

打开命令行(或者 Git Bash),输入以下命令来创建 SSH Key:

$ ssh-keygen -t rsa -C "[email protected]"

注意邮箱换成你自己的,一路回车,使用默认值即可。

如果一切顺利的话,可以在用户主目录里找到 .ssh​ 目录,里面有 id_rsa​ 和 id_rsa.pub​ 两个文件。

PS:对于 Windows 用户来说,用户主目录是 C:\Users\你的用户名​,例如我的是:

对于 Linux 用户:

cd ~/.ssh
ssh-kengen -t -a rsa

这两个就是 SSH Key 的秘钥对,可以右键用记事本之类的工具打开。id_rsa ​里的内容是私钥,不能泄露出去,id_rsa.pub ​里的内容是公钥,可以放心地告诉任何人。

远程仓库就是通过公钥来识别你的身份的,对于那些没有对应私钥的人来说,是不能修改你的仓库里的内容的。

在远程仓库里配置公钥

这里假设读者已注册好(注册就不用演示了吧

标签:git,remote,仓库,--,Git,更上一层楼,协作,远程
From: https://www.cnblogs.com/PeterJXL/p/18432947

相关文章

  • centos7安装gitlab并汉化
    一、基础环境准备1.安装依赖包[root@gitlab-server~]#yuminstallcurlpolicycoreutilsopenssh-serveropenssh-clientspostfixwgetgitpatch-y[root@gitlab-server~]#systemctlstartpostfix2.配置yum源(由于网络问题,国内用户,建议使用清华大学的镜像源进行安装)[root@g......
  • git修改某些指定提交的履历信息
    一,关于gitrebase-ihead~n的命令,可以修改某个提交的提交履历1,gitlog查看提交log,确认需要修改的commit2,gitrebase-ihead~2(以修改最后的两次提交的履历为例)3,进入gitvim编辑页面,按键盘i进入编辑模式,将需要修改履历的两条提交的“pick”改为“r”(此时不需要改履历信息)4,按......
  • 跨地域协作新篇章:异地传输文件的最优方案!
    基于市场拓展、获取丰富资源、实现长期战略目标、分散运营风险等考量,企业会在多个城市或国家设立分支机构,用以覆盖更广泛的市场和客户群体,提高业务的可靠性和稳定性。企业在实现总分支机构之间异地传输文件时,会面临以下挑战:1.管理难统一不同业务部门、机构之间进行文件传输交换,......
  • 03 git 码云面试题
    1.写出你常用的git命令。2.你们公司是怎么用git做开发的?1.在码云或GitHub等代码托管的网站创建自己仓库,创建完之后码云会给我一个仓库地址,如:https://gitee.com/old_boy_python_stack_21/190326032.git2.自己写代码.....3.将代码提交到远程仓库。-......
  • 工作中使用git的规范流程
    本文介绍企业Git版本控制的逻辑,提高程序代码管理的效率问题:1.开发管理乱2.代码冲突过多3.代码质量过低4.代码管理效率不高..只会用不会管理参考企业Git规范的必要性Git企业级使用规范-操作流程Git企业级使用规范-实际操作1.git管理流程参考2.......
  • Git - 基本操作
    Git基本操作(本地库)很多小伙伴可能都听说过Git,那么Git到底是什么?为什么那么多人都在使用它?Git是一个开源的分布式版本控制系统,用于敏捷、高效地处理任何大中小项目,特别是对于团队协作开发起到了积极有效的推进作用。通俗地讲,Git就像我们玩RPG游戏时的存档系统,它可......
  • git: 报错: no submodule mapping found in .gitmodules for path/位于未检出的子模组
    一,问题的现象:1,安装laravel/ui这个第三方库后,它的文件不出现在未跟踪文件中,如下:liuhongdi@lhdpc:/web/api/vendor/laravel/ui$gitls-files./liuhongdi@lhdpc:/web/api/vendor/laravel/ui$gitls-files././liuhongdi@lhdpc:/web/api/vendor/laravel/ui$lsauth-backe......
  • ECE-GY 6183 Real-Time Digital Signal Processing
    Real-Time Digital Signal Processing LabECE-GY 6183 / ECE-UY 4163Fall 2024This course is an introductiontothe real-time implementationofdigital signal processing (DSP) algorithms, with an emphasis on audio signal processing an......
  • AI编程方法论:我如何与Cursor协作
    我是LoreLuo罗耳,一名10年后端经验的程序员,目前在一家金融公司就职.AI编程为我带来了全新的开发体验,我想分享一下我是如何在工作中使用Cursor的.AI能力的演进随着AI技术的不断发展,我们与AI合作的方式也在不断变化。在上半年,我主要使用GitHubCopilot和idea的AI助手进......
  • 如何恢复被删除的 GitLab 项目?
    GitLab是一个全球知名的一体化DevOps平台,很多人都通过私有化部署GitLab来进行源代码托管。极狐GitLab是GitLab在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。学习极狐GitLab的相关资料:极狐GitLab官网极狐GitLab官网文档极狐GitLab论坛极狐G......