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

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.mzph.cn/news/722990.shtml

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

相关文章

力扣hot100:560.和为K的子数组(前缀和+哈希表)

分析: 这个题目乍一看,数据大小用暴力解法大概率会超时,可能想用双指针,但是问题出现在 可能存在负数,也就是说即使是找到了一个答案,后面也可能存在负数和正数抵消,又是答案,因此不…

SpringBoot集成Logback

logback logback-core:其它两个模块的基础模块。logback-classic:它是log4j的一个改良版本,同时它完整实现了slf4j API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging。logback-access:访问模块与Servlet容器集成提供…

08-prometheus监控的告警通知-alertmanager组件工具

一、概述 prometheus通过规则文件对比抓取到的数据,来判断是否触发告警,我们通过配置告警的工具altermanager进行告警通知; 规则文件,写的就是,当我们获取到的PromeQL的值到达一个设置的规则后,触发告警&am…

刷题笔记day27-回溯算法3

39. 组合总和 var path []int var tmp []int var result [][]int// 还是需要去重复,题目中要求的是至少一个数字备选的数量不同。 // 所以需要剪枝操作,右边的要比左边的> func combinationSum(candidates []int, target int) [][]int {// 组合问题pa…

白皮书发布|超融合运行 K8s 的场景、功能与优势

目前,不少企业都使用虚拟化/超融合运行 Kubernetes 和容器化应用。一些用户可能会有疑惑:既然 Kubernetes 可以部署在裸金属上,使用虚拟化不是“多此一举”吗? 在电子书《IT 基础架构团队的 Kubernetes 管理:从入门到…

详细分析Vue中的$refs用法

目录 1. 基本知识2. Demo 1. 基本知识 在Vue.js中,$refs是一个特殊的属性,用于在组件内部直接访问子组件或者DOM元素 作用: 访问DOM元素: 直接访问模板中的DOM元素,以便执行DOM操作,如聚焦、改变样式等 访…

[极客大挑战 2020]Roamphp1-Welcome ---不会编程的崽

buuctf上的题难度适中。越到后边会越难&#xff0c;但也有例外 页面报错了。报错的原因可能有很多种猜想。所以有没有一种可能是故意这么设计的。先抓包吧 发现是GET请求。修改请求方法再试试呢&#xff1f; <?php error_reporting(0); if ($_SERVER[REQUEST_METHOD] ! P…

Android Studio开发(一) 构建项目

1、项目创建测试 1.1 前言 Android Studio 是由 Google 推出的官方集成开发环境&#xff08;IDE&#xff09;&#xff0c;专门用于开发 Android 应用程序。 基于 IntelliJ IDEA: Android Studio 是基于 JetBrains 的 IntelliJ IDEA 开发的&#xff0c;提供了丰富的功能和插件…

Python 全栈系列232 再次搭建RabbitMQ

说明 最近想重新上RabbitMQ&#xff0c;主要目的还是为了分布式任务调度。在Kafka和RabbitMQ两者犹豫了一下&#xff0c;还是觉得RabbitMQ好一些。 在20年的时候有搞过一阵子的RabbitMQ,看了下当时的几篇文章&#xff0c;觉得其实想法一直没变过。 Python - 装机系列24 消息…

常用“树”数据结构

哈夫曼树 在许多应用中&#xff0c;树中结点常常被赋予一个表示某种意义的数值&#xff0c;称为该结点的权。从树的根到任意结点的路径长度(经过的边数)与该结点上权值的乘积&#xff0c;称为该结点的带权路径长度。树中所有叶结点的带权路径长度之和称为该树的带权路径长度&am…

出现身份验证错误,无法连接到本地安全机构 顺利解决这个问题希望能帮助大家

出现身份验证错误&#xff0c;无法连接到本地安全机构&#xff0c;远程计算机&#xff1a;XX&#xff0c;这可能是由于密码过期&#xff0c;如果密码已过期请更新密码。 我们可以在系统属性中对远程进行设置&#xff0c;以解决远程桌面无法连接到本地安全机构这一问题。 步骤…

倒计时34天

L2-1 堆宝塔 - B107 2023级选拔春季开学测重现 (pintia.cn) #include<bits/stdc.h> using namespace std; //#define int long long const int N2e56; const int inf0x3f3f3f3f; const double piacos(-1.0); vector<int>ve1,ve2; vector<vector<int> >…

企业出海WAS安全自动化解决方案

随着企业出海的日益激烈&#xff0c;安全风险正在成为企业日益关注的问题之一&#xff0c;九河云携手AWS带来了使用Amazon WAF 与 Amazon Shield 的 CloudFront安全自动化。Aws WAF是一种web应用防火墙&#xff0c;可帮助保护客户的web应用程序或api免遭常规web漏洞的攻击。Aws…

【Hadoop大数据技术】——Hadoop概述与搭建环境(学习笔记)

&#x1f4d6; 前言&#xff1a;随着大数据时代的到来&#xff0c;大数据已经在金融、交通、物流等各个行业领域得到广泛应用。而Hadoop就是一个用于处理海量数据的框架&#xff0c;它既可以为海量数据提供可靠的存储&#xff1b;也可以为海量数据提供高效的处理。 目录 &#…

【数据结构】用栈实现队列

前言&#xff1a;本节博客分享了用栈实现队列效果的思路以及代码&#xff0c;有需要借鉴即可。 1.题目及链接 LINK 2.思路分析 如果要用栈实现队列&#xff0c;我们直到栈是先入后出的一个效果&#xff0c;所以我们可以用两个栈&#xff0c;这样逆转两次数不就是入栈之前数组…

SpringBoot约定大于配置

什么是约定大于配置 "约定大于配置"&#xff08;Convention Over Configuration&#xff09;是一种理念&#xff0c;旨在通过默认约定和规则来减少开发人员需要做的配置工作。在Spring Boot框架中&#xff0c;这一原则得到了充分应用&#xff0c;帮助开发者更快地构…

Blender和3ds Max哪个会是行业未来?

Blender和3ds Max都是很强大的三维建模和渲染软件&#xff0c;各有各的好处。选择哪个软件更好&#xff0c;要看你的需求、预算、技术水平以及行业趋势等因素。 Blender最大的优点是免费且开源&#xff0c;这对预算有限的个人和小团队来说很有吸引力。它有很多建模工具和功能&…

在电脑桌面打开任意应用程序的快捷键

首先为某个程序&#xff08;比如谷歌浏览器&#xff09;创建一个快捷方式&#xff0c; 其次右键快捷方式&#xff0c;找到属性一栏 单击快捷键三个字右边的方框&#xff08;里面有一个“无”&#xff09;&#xff0c;然后按下你所需要设置的快捷键

【强化学习的数学原理-赵世钰】课程笔记(七)时序差分方法

一.内容概述 第五节课蒙特卡洛&#xff08;Mento Carlo&#xff09;方法是全课程中第一次介绍 model-free 的方法&#xff0c;本节课的 Temporal-difference learning&#xff08;TD learning&#xff09;是我们要介绍的第二种 model-free 的方法。基于蒙特卡洛&#xff08;Me…

【数据结构高阶】并查集

目录 一、什么是并查集 二、并查集的原理 三、并查集的作用 四、并查集的代码实现 一、什么是并查集 在一些应用问题中&#xff0c;需要将n个不同的元素划分成一些不相交的集合。开始时&#xff0c;每个元素自成一个 单元素集合&#xff0c;然后按一定的规律将归于同一组元…