真实项目通常是多人开发的,因此需要将管理的代码共享到远程仓库中。

远程仓库通常是搭建在某一个服务器上的。可以在自己的服务器上搭建一个 Giit 服务器;也可以使用第三方的 Git 服务器,例如:GitHub、GitLab、Gitee 等。

GitHub 既可以建公有仓库,也可以建私有仓库。公有仓库任何人都可以查看和克隆,但是无法进行 push 操作。
一般情况下,开源项目会放到 gitHub 上,公司的私有项目会放到 gitLab 上。

开源项目可以选择开源协议来规定使用者的权利和责任。常见的开源协议有以下几种,其中 MIT 使用最多。
请添加图片描述

请添加图片描述

创建远程仓库(以 GitHub 为例):

登陆 GitHub,点击右上角的 New repository 按钮(或者其他新建仓库的按钮),进入创建仓库的页面创建一个远程仓库。

创建远程仓库,之前会默认创建一个 master 分支,现在是 main 分支。
给电脑中安装 Git,git init 时默认会创建一个 master 分支,但是有选项可以输入默认创建的分支名。

在这里插入图片描述

远程仓库的验证:

对远程仓库进行操作需要进行验证,远程仓库的验证有两种方式:基于 HTTP 的凭证和基于 SSH 的秘钥。

基于 HTTP 的凭证:

因为 HTTP 本身是无状态的连接,因此,基于 HTTP 凭证的方式,每一次对远程仓库的操作都需要使用用户名和密码进行校验。

Git 有一个凭证系统 Git Crediential ,可以避免每次操作都弹框询问。有以下选项:

  1. 默认不缓存:每一次连接都会询问用户名和密码。

  2. cache 模式:会将凭证存放在内存中15 分钟,之后访问远程仓库将会默认被携带上。

  3. store 模式:会将凭证以明文的形式永久存放在磁盘中,之后访问远程仓库将会默认被携带上。

  4. 如果是 Mac,还有一种 osxkeychain 模式,会将凭证以加密的形式缓存到系统用户的钥匙串中,之后访问远程仓库将会默认被携带上。

  5. 如果是 Windows,安装 Git 时,会有个选项默认安装一个叫做 Git Crediential Manager for Windows 的辅助工具,会将凭证以加密的形式存储起来,之后访问远程仓库将会默认被携带上。

    可以通过 git config crediential.helper 来查看是否已经使用了这个辅助工具来管理凭证。
    请添加图片描述

    可以在 控制面板 --> 用户账户 --> 凭证管理器 --> Windows 凭证 中将其删除。

    请添加图片描述

基于 SSH 的秘钥:

SSH:Secure Shell,安全外壳协议。是一种加密的网络传输协议,可以在不安全的网络中为网络服务提供安全的传输环境。SSH 以非对称加密的方式实现身份验证(例如:有一种方法是使用自动生成的公钥和私钥对来简单地加密网络连接,最后使用密码认证进行登录;另一种方法是人工生成一对公钥和私钥,通过生成的秘钥进行认证,公钥需要放在待访问的服务器中,对应的私钥需要用户自行保管,这样就可以在不输入密码的情况下登录)。

  1. 生成公钥和私钥:cd ~ 进入用户的家目录,执行 ssh-keygen -t rsa -C 【注册 GitHub 的邮箱】 命令生成 SSH 的秘钥。
  2. 复制公钥:cd .ssh 进入 SSH 目录,会看到生成了 id_rsa.pub 公钥和 id_rsa 私钥文件,打开 id_rsa.pub 文件复制其中的内容。
  3. 将公钥放到远程服务器中:登录 GitHub,找到 Settings -> SSH and GPG keys,将复制的公钥的内容粘贴到 Key 中即可。
    在这里插入图片描述
    在这里插入图片描述

关联远程仓库:

git remote add 【自定义的远程仓库别名】 【远程仓库地址】 :给本地仓库关联远程仓库。

自定义的远程仓库别名默认是 origin。
一个本地仓库可以关联多个远程仓库。
通过 git remote 可以查看本地仓库关联的远程仓库。

  1. 进入本地仓库所在目录的终端,执行 git remote add origin https://github.com/huadangmao/test.git,为本地仓库关联 https://github.com/huadangmao/test.git 这个远程仓库并为其指定一个简短的别名 origin

克隆远程仓库:

git clone 【远程仓库地址】 :将远程仓库克隆到本地。

  1. 进入想要存放项目的目录下的终端,执行 git clone https://github.com/huadangmao/test.git 克隆远程仓库到本地。

团队协作和跨团队协作:

团队协作:

示例:公司内部协作开发。
在这里插入图片描述

跨团队协作:

示例:有一个公司外部的人员 A 协助临时开发一个功能。他可以 fork 一份公司的远程库代码到自己的远程库;开发完成之后发起一个 pull request;公司主管人员审核之后,就可以 merge 到公司的远程库中了。
在这里插入图片描述

  1. A 访问公司的远程仓库地址,点击 Fork,就成功地 Fork 了一份公司的远程库代码到自己的远程库。
    在这里插入图片描述
    在这里插入图片描述
  2. A 克隆远程库代码到本地,进行修改之后 add commoit 到本地库,再 push 到自己的远程仓库。
  3. A 在自己的远程库中提交一个 pull request。
    在这里插入图片描述
    在这里插入图片描述
  4. 公司主管查看公司远程仓库中的 pull request,合并代码。
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
5. 此时公司主管再去 code 查看代码,即可看到更新的内容。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐