Git分布式管理-头歌实验远程版本库

news2025/6/21 8:39:30

Git的一大特点就是,能为不同系统下的开发者提供了一个协作开发的平台。而团队如果要基于Git进行协同开发,就必须依赖远程版本库。远程版本库允许,我们将本地版本库保存在远端服务器,而且,不同的开发者也是基于远程版本库进行协同开发。因此,远程版本库的各种操作,在Git的使用中至关重要。

一、clone远程版本库

任务描述

当你刚进入到一个开发团队中,你要做的第一件事情,可能就是获取一份项目的源代码。如果你的团队使用Git,进行版本控制和代码管理的话,你的leader很可能会给你一个类似于https://sample.git的地址。不要惊慌,这很可能就是你们项目的远程版本库地址,通过它你就可以获取到完整的源代码库。

本关任务:clone指定的远程版本库到本地。

相关知识

克隆操作

克隆,顾名思义,就是要获取远程版本库的完整拷贝。通过克隆操作,你可以将整个远程版本库的各种细节复制到本地,并且会建立起本地版本库和远程版本库的对应关系。

克隆操作需要用到的命令是git clone,它的具体用法如下所示:

git clone https://sample.git

通过这样的操作,就能将远程版本库复制到本地了,而且会默认克隆到sample文件夹下(对应于远程版本库地址中指定的sample)。同时,你也可以根据需要,指定克隆到其他目录下,其命令格式为:

git clone xxx.git "指定目录"

这样就能将代码都复制到指定目录下。

Git服务器

在团队开发中,我们必须选用一台主机做为Git服务器来存放远程版本库。这样团队中的每个开发者,就可以基于一个共同的远程版本库进行开发。目前提供代码托管(即可以将远程版本库存放于其上的)的平台有Github、码云等,同时我们也可以搭建一台私有的运行Git的服务器,来做为远程Git服务器。Github等平台的使用,及本地Git服务器的搭建,会在后续的实训中具体介绍。本地Git服务器,可以配置不同的连接方式,如shellgitbash。为了给挑战者提供一个便利的实训环境,我们为每个人配置了一台本地Git服务器,并允许以bash方式进行操作,即可以通过类似于/home/sample.git这种形式的地址,做为远程仓库地址进行操作,而不是像https://sample.git这种形式。

编程要求

#请在下面的Begin/End内填写语句以将远程版本库clone到本地
#********** Begin **********#

git clone /tmp/sample.git

#********** End **********#

 二、添加远程版本库-git remote add

任务描述

现在你要自己启动一个项目了,你需要将你的代码保存到远程版本中。那么你要做的第一件事就是,需要为你的本地版本库添加一个远程仓库,然后整个团队才能基于这个远程版本库进行协同开发。 本关任务:创建一个本地版本库,并为其添加远程仓库。

相关知识

添加远程版本库需要用到的命令是git remote add,其命令格式为:

git remote add “远程仓库名” “远程仓库地址”

使用示例如下:

git remote add origin https://sample.git

这样就将https://sample.git添加为远程仓库,并将其命名为origin。 ###编程要求 本关的编程任务是,补全右侧代码片段中BeginEnd中间的脚本。通过执行你所编写的脚本,来完成为本地仓库添加远程仓库的任务。远程仓库的地址为/tmp/sample.git。具体要求如下:

  • 创建一个本地版本库;
  • 为创建的本地仓库添加远程仓库,且将其命名为git
#创建gitTrainging文件夹
mkdir gitTraining

#进入到gitTraining文件夹
cd gitTraining

#将gitTraining初始化为一个本地仓库
git init

#请在下面的Begin/End内填写语句添加符合要求的主机名和远程仓库
#********** Begin **********#

git remote add git /tmp/sample.git

#********** End **********#

 三、推送本地内容到远程仓库-git push

任务描述

在团队开发中一个很频繁、很普通的行为,就是将你的修改推送到远程仓库,以便于测试或者和团队中其他人协作。

本关任务:创建本地仓库仓库并添加远程主机,然后创建helloGit.txt文件,并向其中写入“Hello,Git!I am coming”,最后将其推送到远程仓库的master分支。

相关知识

推送本地内容时,会将所有未推送至远程仓库的内容,都提到远程仓库。它用到的命令是git push,使用方法如下:

git push 远程仓库名 本地分支名 远程分支名

具体的使用方法如下:

git push origin master master

这样就将本地分支的内容,推送到远程仓库originmaster分支了。 git push的另外一种用法如下:

git push -u 远程仓库名 本地分支名 远程分支名

-u参数的作用是,建立起本地master分支和远程master分支之间的对应关系,下一次如果再推送master分支,就可以忽略远程分支名了,如下所示:

编程要求

本关的编程任务是,补全右侧代码片段中BeginEnd中间的脚本。通过执行你所编写的脚本,完成将本地内容推送到远程仓库的操作。具体要求如下:

  • 创建本地仓库gitTrainging
  • 添加远程仓库/tmp/educoder.git,并将其命名为git
  • 创建helloGit.txt文件,并将其添加到本地仓库;
  • helloGit.txt推送到远程仓库。
#创建gitTraining目录
mkdir gitTraining

#进入gitTraining目录
cd gitTraining

#将gitTraining初始化为一个本地仓库
git init

#创建helloGit.txt
touch helloGit.txt

#添加远程仓库
git remote add git /tmp/educoder.git

#将helloGit.txt添加到暂存区
git add helloGit.txt

#将helloGit.txt提交到本地仓库
git commit -m "hello Git!"


#请在下面的Begin/End内填写语句,将本地master分支的修改推送到
#远程仓库的master分支
#********** Begin **********#

git push git master

#********** End **********#

 四、拉取远程分支到本地-git pull

任务描述

在前三个关卡,我们已经学习了,如何克隆版本库、添加远程仓库及推送本地内容到远程分支这三种操作。那么在团队协作中,如果别人对项目做了修改,而你需要将这些修改合并到你本地时,该怎么做呢?

本关任务:将远程分支内容拉取到本地。

相关知识

拉取远程仓库的内容到本地,需要使用git pull命令,其命令格式为:

git pull 远程主机名 远程分支名 本地分支名

其使用示例如下

#将远程仓库origin的master分支的内容拉取到本地master分支
git pull origin master:master

但是,在使用过程中,也可能会出现一种情况:远程分支和本地分支对同一内容做了修改,这就会导致将远程分支的修改,合并到本地分支的时候发生冲突。这个时候,可以选择解决冲突,然后合并(解决冲突会在后续的实训中介绍)。也可以选择直接强制拉取,使用远程分支的修改,覆盖本地分支的修改。强制拉取需要用到-f参数,语法格式如下:

git pull 远程主机名 远程分支名 本地分支名 -f

具体的使用示例如下:

#将远程仓库origin的master分支的内容拉取到本地master分支
git pull origin master:master -f

编程要求

本关的编程任务是,补全右侧代码片段中BeginEnd中间的脚本。通过执行你所编写的脚本,来完成拉取远程分支内容到本地的任务。具体要求如下:

  • 创建本地仓库gitTraining
  • 添加远程仓库/tmp/educoder.git
  • 拉取远程仓库的master分支到本地。
#创建gitTraining目录
mkdir gitTraining

#进入gitTraining目录
cd gitTraining

#将gitTraining初始化为一个本地仓库
git init

#创建helloGit.txt
touch helloGit.txt

#添加远程仓库
git remote add git /tmp/educoder.git

#请在下面的Begin/End内填写语句以拉取远程仓库git的master分支内容到本地
#********** Begin **********#
git pull git master

#********** End **********#

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1503256.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OJ:循环队列

622. 设计循环队列 - 力扣(LeetCode) 思路 思路:首先循环队列的意思是:空间固定,就是提前开辟好,满了就不能插入了,但是删除数据后仍有空间,删除循环队列里面的数据后,保…

Python学习日记之学习turtle库(上 篇)

一、初步认识turtle库 turtle 库是 Python 语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横 轴为 x、纵轴为 y 的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面 坐标系中移动&#xff0…

如果编程语言是一种武器……

对程序员来说,编程语言就是武器,但有的武器好用,有的武器不好用,有的武器甚至会杀了自己 C语言是M1式加兰德步枪,很老但可靠。 C是双截棍,挥舞起来很强悍,很吸引人,但需要你多年的磨…

Ubuntu平铺左、右、上、下、1/2、1/4窗口(脚本)

前言 之前因为一直在用Ubuntu 18或者Ubuntu 20然后发现装了GNOME插件后,电脑在使用过程中,会时不时的卡死(鼠标没问题,键盘输入会有10-20秒的延迟)频率基本是一小时一次,因为这种卡顿会很容易打断思路&…

攻防世界-MISC-EASY_EVM

题目链接:攻防世界 (xctf.org.cn) 下载附件得到info.txt: pragma solidity ^0.5.0; ABI: [ { "inputs": [], "payable": true, "stateMutability": "payable", "type": "constructor" }, {…

基于单片机的RFID门禁系统设计

目 录 摘 要 I Abstract II 引 言 1 1 控制系统设计 3 1.1 主控制器选择 3 1.2 项目总体设计 3 2 项目硬件设计 5 2.1 单片机控制模块 5 2.2 射频识别模块 8 2.3 矩阵键盘模块 9 2.4 液晶显示模块 10 2.5 报警模块 11 2.6 AT24C02存储模块 12 2.7 继电器驱动模块 13 2.8 总电路…

【ubuntu】安装 Anaconda3

目录 一、Anaconda 说明 二、操作记录 2.1 下载安装包 2.1.1 官网下载 2.1.2 镜像下载 2.2 安装 2.2.1 安装必要的依赖包 2.2.2 正式安装 2.2.3 检测是否安装成功 方法一 方法二 方法三 2.3 其他 三、参考资料 3.1 安装资料 3.2 验证是否成功的资料 四、其他 …

数据结构之八大排序

𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary_walk ⸝⋆ ━━━┓ - 个性标签 - :来于“云”的“羽球人”。…

数列操作1——栈+前缀和,典型例题,值得一看

题目描述 先给定一个长度为n数列,再给定m个操作,现在需要维护五个操作: 1 x:在光标的前面插入一个数字x。 2:删除光标前的最后一个数字,如果光标前没有数字则忽略。 3:左移一格光标&#xf…

【Python】7. 基础语法(5) -- 文件+库+习题篇

文件 文件是什么 变量是把数据保存到内存中. 如果程序重启/主机重启, 内存中的数据就会丢失. 要想能让数据被持久化存储, 就可以把数据存储到硬盘中. 也就是在 文件 中保存 在 Windows “此电脑” 中, 看到的内容都是 文件. 文件夹(目录)也是一种特殊的文件->目录文件 通过…

关于装载类子系统

装载类子系统 类加载器字节码调节器类加载运行时数据区 类加载器 将class文件加载进jvm的方法去,并在方法去中创建一个java.lang.Class对象作为外界访问这个类的接口。实现这个动作的代码模块称为类加载器。 类加载器分类 启动类加载器(Bootstrap C…

qt带后缀单位的QLineEdit

QLineEditUnit.h #pragma once #include <QLineEdit> #include <QPushButton>class QLineEditUnit : public QLineEdit {Q_OBJECT public:QLineEditUnit(QWidget* parent Q_NULLPTR);~QLineEditUnit();//获取编辑框单位QString UnitText()const;//设置编辑框单位…

ubuntu自带屏幕截图功能

目录 简介开始截屏步骤1.打开截屏软件2.选择区域3.截图 快捷键 录屏方法11.开始录屏2.停止录屏 方法2 补充说明 简介 试了好多开源跨平台截图软件&#xff0c;但是在ubuntu上都或多或少存在问题。ubuntu有自带的截图软件。打算把ubuntu自带的截图软件用起来。 顺便说一下我使…

JavaScript数组方法常用方法大全

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1. push()2. pop()3. unshift()4. shift()5. isArray()6. map()7. filter()8. every()9. some()10. splice()11. slice()12. indexOf()13. includes()14. concat()1…

Vue+SpringBoot打造木马文件检测系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 木马分类模块2.3 木马软件模块2.4 安全资讯模块2.5 脆弱点模块2.6 软件检测模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 木马分类表3.2.2 木马软件表3.2.3 资讯表3.2.4 脆弱点表3.2.5 软件检测表…

【Python】新手入门:变量的作用域是什么?有哪几种作用域?作用域的查找顺序是什么?

【Python】新手入门&#xff1a;变量的作用域是什么&#xff1f;有哪几种作用域&#xff1f;作用域的查找顺序是什么&#xff1f; &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基…

Django添加app

Django添加App python manage.py startapp [app_name]快速上手 注册app&#xff0c;setting.py 编写url和视图的对应关系 添加视图函数 命令行启动 python manage.py runserver页面模板

循序渐进丨MogDB 数据库新特性之SQL PATCH绑定执行计划

1 SQL PATCH 熟悉 Oracle 的DBA都知道&#xff0c;生产系统出现性能问题时&#xff0c;往往是SQL走错了执行计划&#xff0c;紧急情况下&#xff0c;无法及时修改应用代码&#xff0c;DBA可以采用多种方式针对于某类SQL进行执行计划绑定&#xff0c;比如SQL Profile、SPM、SQL …

详解前端登录流程:实现原理与最佳实践

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

考研复习C语言初阶(3)

目录 一.函数是什么? 二.C语言中函数的分类 2.1库函数 2.2自定义函数 三.函数的参数 3.1实际参数&#xff08;实参&#xff09; 3.2 形式参数&#xff08;形参&#xff09; 四.函数的调用 4.1 传值调用 4.2 传址调用 五. 函数的嵌套调用和链式访问 5.1 嵌套调用 5…