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

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

一、clone远程版本库

任务描述

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

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

相关知识

克隆操作

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

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

bash 复制代码
git clone https://sample.git

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

bash 复制代码
git clone xxx.git "指定目录"

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

Git服务器

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

编程要求

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

git clone /tmp/sample.git

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

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

任务描述

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

相关知识

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

bash 复制代码
git remote add "远程仓库名" "远程仓库地址"

使用示例如下:

bash 复制代码
git remote add origin https://sample.git

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

  • 创建一个本地版本库;
  • 为创建的本地仓库添加远程仓库,且将其命名为git
bash 复制代码
#创建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,使用方法如下:

bash 复制代码
git push 远程仓库名 本地分支名 远程分支名

具体的使用方法如下:

bash 复制代码
git push origin master master

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

bash 复制代码
git push -u 远程仓库名 本地分支名 远程分支名

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

编程要求

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

  • 创建本地仓库gitTrainging
  • 添加远程仓库/tmp/educoder.git,并将其命名为git
  • 创建helloGit.txt文件,并将其添加到本地仓库;
  • helloGit.txt推送到远程仓库。
bash 复制代码
#创建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命令,其命令格式为:

bash 复制代码
git pull 远程主机名 远程分支名 本地分支名

其使用示例如下

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

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

bash 复制代码
git pull 远程主机名 远程分支名 本地分支名 -f

具体的使用示例如下:

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

编程要求

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

  • 创建本地仓库gitTraining
  • 添加远程仓库/tmp/educoder.git
  • 拉取远程仓库的master分支到本地。
bash 复制代码
#创建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 **********#
相关推荐
添砖java_8572 小时前
基于RabbitMQ实现的轻量队列测试报告
分布式·rabbitmq
Zhu7583 小时前
使用腾讯CNB构建Hadoop定制容器镜像
大数据·hadoop·分布式
TTBIGDATA5 小时前
【Ambari Plus】13.Spark 安装
大数据·hadoop·分布式·spark·ambari·sqoop·ambari plus
sunxunyong6 小时前
Hadoop租户创建
大数据·hadoop·分布式
得物技术7 小时前
得物 OceanBase 落地实践
数据库·分布式·架构
减瓦8 小时前
Windows 环境使用 Git Bash 最佳实践
windows·git
史呆芬8 小时前
CodeX多仓库提交Skill搭建
git·后端·openai
heimeiyingwang9 小时前
【架构实战】分布式ID生成:从自增ID到雪花算法
分布式·架构
城东9 小时前
Git使用[原意要新建分支提交但是误提交到原来分支恢复办法]
git·原意要新建分支提交·但是误提交到原来分支