git分布式管理-头歌实验合并远程分支、rebase、储藏

这篇具有很好参考价值的文章主要介绍了git分布式管理-头歌实验合并远程分支、rebase、储藏。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、合并远程分支merge

任务描述

在软件开发中,通常会在版本库中创建多个不同的分支进行开发。例如,最基本的可以有一个测试版分支和一个正式版分支,其中测试版分支用来完成最新功能代码的开发与测试,正式版则用于管理即将发布的版本。

如果某个版本通过了测试,就需要将其推到正式产品线上去。将测试版推送到正式版的一个做法,就是将远程仓库测试版的分支代码,合并到正式版的分支代码中去,这就对应着远程分支合并的操作。

本关任务:合并远程指定的分支。

相关知识

合并远程分支的一般步骤是:

  1. 第一步,分别获取远程分支内容到本地;
  2. 第二步,在本地将两个分支合并;
  3. 第三步,将合并后的本地分支推送到远程分支,完成合并。

具体的,以将远程develop分支合并到远程master分支为例,操作过程如下:

  1. 获取远程develop分支到本地分支(如develop分支)。如果本地已经有分支对应远程develop分支,则可以直接在该分支上执行pull操作或者fetch/merge操作,以获取远程最新内容。否则,可以新建分支跟踪远程develop分支,并获取最新内容到本地;

  2. 切换到master分支,并获取远程master分支的最新内容到本地;

  3. 将本地develop分支合并到本地master分支;

  4. 将本地master分支推送到远程master分支。

以合并远程develop分支到远程master分支为例,其具体操作步骤如下:

#切换到develop分支
git checkout develop
#获取远程develop分支的内容到本地
git pull origin develop:develop
#切换到master分支
git checkout master
#拉取远程master分支内容到本地
git pull origin master
#合并本地develop分支到master分支
git merge develop
#将合并后的分支推送到远程master分支
git push origin master:master
编程要求

平台已经为你准备了本地版本库repo,且已添加远程仓库/tmp/origin,并将远程主机命名为origin。本地版本库已有master分支和develop分支,两个分支均有已提交的内容,且本地版本库当前处于develop分支。

本关的编程任务是,补全右侧代码片段中BeginEnd中间的脚本,合并远程develop分支到远程master分支。

#进入本地版本库
cd repo

#请在下方Begin/End星号线内填写git命令以将远程develop分支合并到远程master分支
#********** Begin **********#

git checkout develop

git pull origin develop:develop

git checkout master

git pull origin master

git merge develop

git push origin master:master
#********** End **********#

二、rebase操作

任务描述

合并不同分支,除了使用merge操作之外,还可以使用rebase操作。相比于merge操作,使用rebase会使分支树更为清晰、干净。

本关任务:完成rebase操作。

merge和rebase的不同

merge的工作流程如下图:

git分布式管理-头歌实验合并远程分支、rebase、储藏,git管理,git,分布式

如上图所示,我们从远程仓库originC2版本,创建一个新的分支develop进行开发,并进行了C5C6两次提交。之后团队中其他成员又向origin推送了两次提交C3C4。为了合并远程分支上的新内容到本地,我们进行merge操作,将内容合并到develop之后,生成了一次新的提交C7。此时,develop分支还是一个独立的分支。

rebase的工作流程如下图:

git分布式管理-头歌实验合并远程分支、rebase、储藏,git管理,git,分布式

rebase又可称为‘变基’,结合上图的话,这个词就很容易理解了。即:

  1. C5C6本来是在C2这次提交的基础上进行修改的;

  2. 现在我们将这个‘基础’改为C4,即将C5C6的提交作用到C4上去;

  3. 在这个过程中,可能会有冲突产生,解决冲突之后就完成了rebase

由图可以看到,rebase完成后,源分支上的提交都不见了。

rebase基础操作

rebase的基本操作是将某个分支的修改到指定分支,其命令格式为:

git rebase 基分支 源分支

其中‘基分支’是我们的新的‘基’,而‘源分支’就是需要进行变基操作的分支。这样就能实现将源分支变基到基分支。具体使用示例如下:

git rebase master develop

以上语句就能实现将develop变基到master分支。 如果是将当前分支变基到指定分支,则可以直接使用:

git rebase 基分支

这一命令默认将当前分支变基到‘基分支’。如果当前处于develop分支,则其使用示例如下:

git rebase master

这样也能实现将当前的develop分支rebasemaster分支。

由于变基是将修改作用到一个不同的版本上,因此很可能在rebase的过程中出现冲突。和merge一次性合并所有冲突不同的是,rebase的冲突是一个一个解决的。以上图中的rebase操作为例,需要分别解决和C3C4的冲突。在解决rebase冲突的过程中,当解决完一个冲突的时候,使用如下命令后,才会出现下一个冲突:

git add -u 
git rebase --continue 

冲突全部解决完后,rebase操作就完成了。 如果在解决冲突的过程中,想放弃rebase操作,则可以使用如下命令撤销rebase操作:

git rebase --abort

这样就能退出rebase,并回退到rebase前的状态。

编程要求

平台已经为你准备了本地版本库gitTraining,并创建了两个分支masterdevelop,且当前处于develop分支。并且,develop分支是从master分支,checkout出去的分支。

本关的编程任务是,补全右侧代码片段中BeginEnd中间的脚本,将develop变基到master分支。

#进入本地gitTraining版本库
cd gitTraining

#请在下方Begin/End星号线内填写Git命令以完成rebase操作
#********** Begin **********#
git checkout develop
git rebase master


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

 三、储藏之保存git stash

任务描述

在开发过程中,当你的开发分支处于一个比较杂乱的状态,而你想转到其他分支上进行另外一些工作。但是,你不想提交进行了一半的工作,也不想将其撤销,这时就可以使用储藏操作。当你完成工作之后,再次回到该分支,可以恢复储藏的内容。然后,就会将之前保存的内容,再次恢复到工作区,就能继续进行开发。

本关任务:储藏当前工作区中的内容。

相关知识
储藏的概念

“储藏”可以获取你工作目录的中间状态(包括修改过的被追踪的文件和已经暂存的变更),并将其保存到一个未完结变更的堆栈中,而且随时可以重新应用。当你不想提交,也不想丢弃当前工作区中的内容,而想切换到其他分支的时候,可以使用储藏命令先暂存工作区中的内容。然后,再回到当前分支的时候,将储藏起来的内容,恢复到工作区之后,即可恢复之前的工作。

储藏的基本操作

储藏分为保存和应用两个部分。保存就是将当前工作区的内容保存到一个栈中,而应用就是重新应用被保存的工作。

保存

保存用到的命令是git stash,只需在当前分支执行此命令,即可将当前工作区的内容保存起来。如你在本地版本库创建了helloGit文件,此时查看工作区状态可以得到如下所示提示:

git分布式管理-头歌实验合并远程分支、rebase、储藏,git管理,git,分布式

当你执行git stash命令,将工作区保存起来之后,再次查看可以得到如下提示

git分布式管理-头歌实验合并远程分支、rebase、储藏,git管理,git,分布式

此时已经将工作区内容保存了起来,所以才会提示工作区是干净(clean)的。

重新应用

当你需要再次应用被保存的内容的时候,只需执行git stash apply即可。 因为可能执行了多次保存,所以你需要查看已经保存起来的内容有哪些。查看已经保存的工作的命令如下:

 git stash list

会得到类似于如下输出:

git分布式管理-头歌实验合并远程分支、rebase、储藏,git管理,git,分布式

如果要应用指定的储藏,则可以使用命令

git stash apply 储藏标识

这里的储藏标识就是git stash list中显示的类似于stash@{0}的字符串。如

git stash apply stash@{2}

这样就重新应用了第二次储藏。如果不加储藏标识,就默认应用最近的储藏:

git stash apply

上述命令就重新应用了最近的一次储藏。

编程要求

平台已经为你准备了本地版本库,在进行了一次提交之后,又在工作区添加了一个名为hello的文件,版本库当前分支是master

本关的编程任务是补全右侧代码片段中BeginEnd中间的脚本,储藏工作区内容。

#进入本地版本库
cd gitTraining

#请在下方Begin/End星号线内填写Git命令以完成储藏操作
#********** Begin **********#

git stash save "Add hello file"
#********** End **********#

四、储藏之恢复 git stash apply

任务描述

在开发过程中,当你的开发分支处于一个比较杂乱的状态,而你想转到其他分支上进行另外一些工作。但是,你不想提交进行了一半的工作,也不想将其撤销,这时就可以使用储藏操作。当你完成工作之后,再次回到该分支,可以恢复储藏的内容。然后,就会将之前保存的内容,再次恢复到工作区,就能继续进行开发。

本关任务:恢复被储藏的工作区的内容。

编程要求

平台已经为你准备了本地版本库,在进行了一次提交之后,又在工作区添加了一个名为hello的文件,然后将其储藏了起来。版本库当前分支是master

本关的编程任务是,补全右侧代码片段中BeginEnd中间的脚本,恢复最近一次储藏。

#进入本地版本库
cd gitTraining

#请在下方Begin/End星号线内填写Git命令以完成恢复操作
#********** Begin **********#

git stash apply

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

 文章来源地址https://www.toymoban.com/news/detail-838930.html

到了这里,关于git分布式管理-头歌实验合并远程分支、rebase、储藏的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 头歌Educoder云计算与大数据——实验五 Java API分布式存储

    原始电商数据都是存储在关系型数据库或 NoSQL 数据库上的,是面向OLTP(联机事务处理过程)的;数据都是面向业务的,而不是面向分析。因此数据比较复杂,表很多关联的数据是分散的,不利于统计分析;因此需要把数据从多个表里导出来、联合起来,找出分析所需要的数据项

    2023年04月09日
    浏览(58)
  • idea解决代码冲突-git分布式合并分支-加git回滚操作

    第一次接触项目发版的工作,记录一下解决版本冲突合并问题的心得。 适用场景:分布式项目,多人使用自己分支开发,最后合并自己的代码分支给主分支。 话不多说,直接看图 1.全部拉下来(这个拉取是全部拉取,既保证自己的分支最新,同时也把远端的分支都拉到最新

    2024年02月08日
    浏览(102)
  • Git分布式版本管理工具

    能够记录历史版本,回退历史版本 团队开发,方便代码合并 git是一个分布式版本控制软件,最初由 林纳斯·托瓦兹 创作,于2005年以GPL许可协议发布。最初目的是为了更好地管理Linux内核开发而设计。应注意的是,这与GNU Interactive Tools不同。 git最初的开发动力来自于BitKeeper和

    2023年04月08日
    浏览(83)
  • 分布式计算实验3 基于PRC的书籍信息管理系统

      利用RPC技术实现一个书籍信息管理系统,具体要求:   1.客户端实现用户交互,服务器端实现书籍信息存储和管理。客户端与服务器端利用RPC机制进行协作。中间件任选。   2.服务器端至少暴露如下RPC接口∶    · bool add(Book b) 添加一个书籍对象。    · Book quer

    2023年04月12日
    浏览(42)
  • Git小白入门——了解分布式版本管理和安装

    Git是目前世界上最先进的分布式版本控制系统(没有之一) 程序员开发过程中,对于每次开发对各种文件的修改、增加、删除,达到预期阶段的一个快照就叫做一个版本。 如果有一个系统,能够让我们知道每个版本做了哪些操作、什么时候做的、谁做的,并且能够任意的在

    2024年02月11日
    浏览(38)
  • 手把手教会Git分布式系统版本管理工具

    前言 一、Git是什么? 1.1 版本控制器的概念 1.2 Git的强大 1.3 Git的安装 二、Git 基本操作 2.1 创建 Git 本地仓库 2.2 认识⼯作区、暂存区、版本库 2.3 add、commit命令 2.4 Git log命令 2.5 .git文件 index: 暂存区,git add 后会更新该内容。 HEAD: 默认指向 master 分⽀的⼀个指针。 refs/heads/ma

    2024年04月14日
    浏览(52)
  • 头歌 分布式文件系统HDFS 答案

    第1关:HDFS的基本操作 在右侧命令行中启动 Hadoop ,进行如下操作。 在 HDFS 中创建 /usr/output/ 文件夹; 在本地创建 hello.txt 文件并添加内容:“ HDFS的块比磁盘的块大,其目的是为了最小化寻址开销。 ”; 将 hello.txt 上传至 HDFS 的 /usr/output/ 目录下; 删除 HDFS 的 /user/hadoop 目录

    2023年04月27日
    浏览(42)
  • HBase 伪分布式环境搭建 - 头歌

    mkdir /app cd /opt tar -zxvf hbase-2.1.1-bin.tar.gz -C /app cd /app cd hbase-2.1.1 cd conf echo $JAVA_HOME /usr/lib/jvm/jdk1.8.0_111 vim hbase-env.sh 进入文件,找到下图中红色框框内的路径,将#去掉,把=号后面的路径改成/usr/lib/jvm/jdk1.8.0_111。注意:记得先按A,才能改。 按esc键,输入  :wq  ,回车。 vim hb

    2024年04月28日
    浏览(38)
  • 【头歌实训】分布式文件系统 HDFS

    本关任务:使用 Hadoop 命令来操作分布式文件系统。 为了完成本关任务你需要了解的知识有:1. HDFS 的设计,2. HDFS 常用命令。 HDFS的设计 分布式文件系统 客户:帮我保存一下这几天的数据。 程序猿:好嘞,有多大呢? 客户: 1T 。 程序猿:好没问题,买个硬盘就搞定了。

    2024年04月15日
    浏览(61)
  • 头歌大数据——HBase 伪分布式环境搭建

    第1关:HBASE伪分布式环境搭建 编程要求 好了,到你啦,你需要先按照上次实训——HBase单节点安装的方式将 HBase 安装在 /app 目录下,然后根据本关知识配置好伪分布式的 HBase ,最后点击测评即可通关。 测试说明 程序会检测你的 HBase 服务和 Hadoop 服务是否启动,以及伪分布

    2024年02月08日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包