Git(四):远程操作

发布于:2025-06-28 ⋅ 阅读:(17) ⋅ 点赞:(0)

Git(四):远程操作

理解分布式版本控制系统

我们⽬前所说的所有内容(⼯作区,暂存区,版本库等等),都是在本地!也就是在你的笔记本或者计算机上。⽽我们的Git其实是**分布式版本控制系统!**什么意思呢?
可以简单理解为,我们每个⼈的电脑上都是⼀个完整的版本库,这样你⼯作的时候,就不需要联⽹
了,因为版本库就在你⾃⼰的电脑上。既然每个⼈电脑上都有⼀个完整的版本库,那多个⼈如何协作呢?⽐⽅说你在⾃⼰电脑上改了⽂件A,你的同事也在他的电脑上改了⽂件A,这时,你们俩之间只需把各⾃的修改推送给对⽅,就可以互相看到对⽅的修改了

在这里插入图片描述

分布式版本控制系统的安全性要⾼很多,因为每个⼈电脑⾥都有完整的版本库,某⼀个⼈的电脑坏掉 了不要紧,随便从其他⼈那⾥复制⼀个就可以了

在实际使⽤分布式版本控制系统的时候,其实很少在两⼈之间的电脑上推送版本库的修改,因为可能 你们俩不在⼀个局域⽹内,两台电脑互相访问不了。也可能今天你的同事病了,他的电脑压根没有开 机。因此,分布式版本控制系统通常也有⼀台充当“中央服务器”的电脑,但这个服务器的作⽤仅仅 是⽤来⽅便“交换”⼤家的修改,没有它⼤家也⼀样⼲活,只是交换修改不⽅便⽽已。有了这个“中央服务器”的电脑,这样就不怕本地出现什么故障了(⽐如运⽓差,硬盘坏了,上⾯的所有东西全部 丢失,包括git的所有内容)

远程仓库

Git是分布式版本控制系统,同⼀个Git仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只 有⼀台机器有⼀个原始版本库,此后,别的机器可以“克隆”这个原始版本库,⽽且每台机器的版本 库其实都是⼀样的,并没有主次之分

你肯定会想,⾄少需要两台机器才能玩远程库不是?但是我只有⼀台电脑,怎么玩? 其实⼀台电脑上也是可以克隆多个版本库的,只要不在同⼀个⽬录下。不过,现实⽣活中是不会有⼈ 这么傻的在⼀台电脑上搞⼏个远程库玩,因为⼀台电脑上搞⼏个远程库完全没有意义,⽽且硬盘挂了 会导致所有库都挂掉

实际情况往往是这样,找⼀台电脑充当服务器的⻆⾊,每天24⼩时开机,其他每个⼈都从这个“服务 器”仓库克隆⼀份到⾃⼰的电脑上,并且各⾃把各⾃的提交推送到服务器仓库⾥,也从服务器仓库中 拉取别⼈的提交。 完全可以⾃⼰搭建⼀台运⾏Git的服务器,不过现阶段,为了学Git先搭个服务器绝对是⼩题⼤作

好在这个世界上有个叫GitHub的神奇的⽹站,从名字就可以看出,这个⽹站就是提供Git仓库托管服务 的,所以,只要注册⼀个GitHub账号,就可以免费获得Git远程仓库。 github是国外的⽹站,速度⽐较慢,我们课堂上同统⼀采⽤码云来托管代码

下来,我们从零开始, 使⽤⼀下码云远程仓库

新建远程仓库

新建远程项目仓库

在这里插入图片描述

填写基本信息

在这里插入图片描述

创建成功

在这里插入图片描述

创建成功后,我们可以对远程仓库进⾏⼀个基本的设置:开源or私有

在这里插入图片描述

在这里插入图片描述

从创建好的远程仓库中我们便能看到,之前在本地学习过的分⽀,也存在于远程仓库中并被管理起来 了。刚创建的仓库有且只有⼀个默认的master分⽀

在这里插入图片描述

Issues(问题跟踪)

定义:Issue用于记录项目中的问题、需求或任务,例如Bug报告、功能改进或团队任务分配
功能:

  • 问题追踪:开发者可以提交问题(如Bug)、需求或建议,并通过评论、修改、关闭或重新打开Issue来协作解决问题
  • 任务管理:Issue可关联到里程碑(Millstone)或GitHub Project,支持团队任务分配和进度跟踪
  • 通知机制:通过@用户名@用户@的方式通知指定成员,确保问题及时处理
  • 模板化:Gitee提供默认Issue模板(如英文/中文),用户提交时可自动填充内容,提升效率。

操作流程:

  1. 在仓库的“Issue”标签页点击“新建Issue”,填写标题和描述(如Bug类型、复现步骤等)
  2. 可通过提交信息关联到对应的提交记录,Gitee会自动更新Issue状态

在这里插入图片描述

Pull Request(代码合并请求)

定义:PR是用户提交代码修改后,请求项目维护者审核并合并到主分支的流程
功能:

  • 代码审查:开发者在本地修改代码后,通过Fork + Pull模式克隆仓库,提交代码到PR,并等待维护者审核
  • 关联Issue:PR可关联多个Issue(如#issue1ident, #issue2ident),关闭PR时自动关闭相关Issue
  • 冲突解决:若代码冲突,需通过git merge或WebIDE在线解决冲突后重新推送
  • 模板化:PR可使用默认模板,明确提交内容和预期结果

操作流程:

  1. 认领Issue:在Issue列表中认领任务,明确自己负责的修改内容
  2. 克隆仓库:通过Fork获取仓库,Clone到本地,创建分支(如feature/fix-bug)
  3. 提交代码:修改代码后,push到远程分支,并在PR页面提交请求
  4. 审核与合并:维护者审核代码后,决定是否合并(Merge)到主分支

在这里插入图片描述

克隆远程仓库

克隆/下载远端仓库到本地,需要使⽤ git clone 命令,后⾯跟上我们的远端仓库的链接,远端仓库 的链接可以从仓库中找到:选择“克隆/下载”获取远程仓库链接:
在这里插入图片描述

SSH协议和HTTPS协议是Git最常使⽤的两种数据传输协议。SSH协议使⽤了公钥加密和公钥登陆机 制,体现了其实⽤性和安全性,使⽤此协议需要将我们的公钥放上服务器,由Git服务器进⾏管理。使 ⽤HTTPS⽅式时,没有要求,可以直接克隆下来,我们演示SSH方式:

在这里插入图片描述

使⽤SSH⽅式克隆仓库,由于我们没有添加公钥到远端库中,服务器拒绝了我们的clone链接。需要 我们设置⼀下:

第一步:创建SSHKey

在⽤⼾主⽬录下,看看有没有.ssh⽬录,如果有,再看看这个⽬录下有没有 id_rsa 和 id_rsa.pub 这两个⽂件,如果已经有了可直接跳到下⼀步。如果没有,需要创建 SSHKey

在这里插入图片描述

顺利的话,可以在⽤⼾主⽬录⾥找到 .ssh ⽬录,⾥⾯有 id_rsa 和 id_rsa.pub 两个⽂件,这两 个就是SSHKey的秘钥对, id_rsa 是私钥,不能泄露出去, id_rsa.pub 是公钥,可以放⼼地告 诉任何⼈

第二步:添加自己的公钥到远端仓库
在这里插入图片描述

点击确认后,需要对你进⾏认证,输⼊你的账号密码即可。⾄此,我们的准备⼯作全部做完,欢快的 clone吧

在这里插入图片描述

成功!如果有多个⼈协作开发,GitHub/Gitee允许添加多个公钥,只要把每个⼈的电脑上的 Key都添加到GitHub/Gitee,就可以在每台电脑上往GitHub/Gitee上提交推送了。 当我们从远程仓库克隆后,实际上Git会⾃动把本地的master分⽀和远程的master分⽀对应起来, 并且,远程仓库的默认名称是origin 。在本地我们可以使⽤ git remote 命令,来查看远程库的 信息,或者,⽤ git remote -v 显⽰更详细的信息:

在这里插入图片描述

上⾯显⽰了可以抓取和推送的origin的地址。如果没有推送权限,就看不到push的地址。推送是什么 意思呢,我们继续往下看

向远程仓库推送

本地已经 clone 成功远程仓库后,我们便可以向仓库中提交内容,例如新增⼀个 file.txt ⽂件
在这里插入图片描述

上面我们使用了 git push 命令, 该命令⽤于将本地的分⽀版本上传到远程并合并,命令格式如下:

在这里插入图片描述

这⾥由于我们使⽤的是SSH协议,是不⽤每⼀次推送都输⼊密码的,⽅便了我们的推送操 作。如果你使⽤的是HTTPS协议,有个⿇烦地⽅就是每次推送都必须输⼊⼝令。接下来,看看码云远端:
在这里插入图片描述

拉取远程仓库

在gitee上点击README.md⽂件并在线修改它,修改之后点击提交按钮:
在这里插入图片描述

此时,远程仓库是要领先于本地仓库⼀个版本,为了使本地仓库保持最新的版本,我们需要拉取下远 端代码,并合并到本地。Git提供了 git pull 命令,该命令⽤于从远程获取代码并合并本地的版 本。格式如下:
在这里插入图片描述
使用后我们发现拉取成功了:
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到