热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何重新创建合并的Git分支

如何解决《如何重新创建合并的Git分支》经验,为你挑选了1个好方法。

假设功能分支合并到master后被删除。

几天/几周后,我需要为该功能分支中的所有提交生成补丁文件。

如果我具有功能分支,则可以使用以下命令来生成补丁:

git format-patch $(git merge-base master my_feature_branch)..my_feature_branch

因此,如何重新创建功能分支,以便可以使用上述命令?



1> torek..:

好吧,首先,分支不会真正被删除。仅分支名称被删除。但这使我们陷入一个棘手的问题:“分支”到底是什么意思?

让我们快速看一下合并过程。我们从提交图中的一系列提交开始(或“ DAG”;请参见链接的问题),如下所示:

...--o--*-----o   <-- master
         \
          o--o--o--o--o   <-- feature

然后,我们运行:

git checkout master
git merge feature

这在某种程度上计算出我们在这两个已经改变masterfeature自上次我们合并它们(这实际上是永远,但他们一起在同一时间,在标注点*这里)。然后,Git进行新的合并提交,使其指向这两个分支提示提交:

...--o--*-----o---------o   <-- master
         \             /
          o--o--o--o--o   <-- feature

并且我们有一个“合并”:类型为commit commit的提交

现在,我们可以删除单词feature和箭头,即删除名称。该保持不变,并保留名称master

...--o--*-----o---------M   <-- master
         \             /
          o--o--o--o--F

如果我们希望看到mastervia 进入了什么feature,我们要做的就是在这里找到我标记为F(针对Feature)的提交。请注意,我还标记了合并提交M(用于合并)。

找到它的方法是从头开始master并向后工作,直到找到为止M。(这正好遇上的尖端master眼下,虽然后来,这将是某些步骤数从后倾)。然后,我们简单看一下第二父提交M

要找到我们知道其哈希ID的提交的第二个父对象,我们只需要告诉Git:告诉我另一个哈希ID的第二个父对象的哈希ID。 最简单的方法是使用git rev-parse。假设的哈希ID Mbadf00d

git rev-parse badf00d^2

Git吐出完整的哈希ID F。帽子二后缀的意思是“第二父母”(帽子一或仅帽子本身的意思是“第一父母”)。

现在我们可能还想找到commit *。这是作为的第一个父项的提交的合并基础,也是我们刚刚发现的特定提交。为了找到两个提交的合并基础,我们要求Git:MF

git merge-base badf00d^1 badf00d^2

然后,我们可以查看范围中的每个提交,从合并基础之后开始*,一直到并包括commit F,使用git loggit format-patch或其他方法。

我们可以用生哈希做到这一点,或者我们可以点名称(暂时性或永久性的,他们将生活完全一样,只要你喜欢),以提交MF和/或*使用git branchgit tag。每个名称都会为您记住哈希ID。标记名称和分支名称之间的主要区别在于,如果您git checkout使用标记名称,则会得到一个“分离的HEAD”并且不在分支上,但是如果您使用git checkout一个分支名称,那么您将到达该分支,并且新的提交,它们将导致该分支前进:

$ git branch newname 

...--o--*-----o---------M--o--o--o   <-- master
         \             /
          o--o--o--o--F   <-- newname

$ git checkout newname
... hack away ...
$ git commit ...

...--o--*-----o---------M--o--o--o   <-- master
         \             /
          o--o--o--o--F--o   <-- newname (HEAD)

这就是Git中分支的全部内容:名称仅指向提交,而分支结构,历史记录或DAGlet或所需的任何名称由提交DAG的永久部分组成。分支名称具有特殊的功能,您可以使用git checkout它们并通过运行使它们前进git commit


推荐阅读
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • 初始化初始化本地空版本库,仓库,英文名repositorymkdirtest&&cdtestgitinit克隆项目到本地gitclone远程同 ... [详细]
  • 先记住几个专用名词,如下:Workspace:工作区IndexStage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库#在当前目录新建一个G ... [详细]
  • Git GitHub多人协作
    在学校做一个小项目需要多人协作,就用到了gitHub,百度了一下多数写得乱七八糟或者支离破碎,于是总结了一下自己的步骤如下,第一次使用GitHUb,哪里不对望大神指出一.前期准备: ... [详细]
  • 双十一在家学用 Git
    对于所有的开发者来说,掌握一门代码版本控制系统都是必须的,无论是自己做项目,团队合作,工作中的合作,都离不开版 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了在git中如何对指定的commit id打标签,并解决了忘记打标签的问题。通过查找历史提交的commit id,可以在任意时间点打上标签。同时,还介绍了git中的一些常用命令和操作。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • 本文整理了Java中javax.xml.stream.events.Attribute.getName()方法的一些代码示例,展示了Attribute.ge ... [详细]
  • 第一种方法gitarchive-oupdate.zip$(gitdiffnew-versionold-version--name-only)此方法如果文件有删除,则 ... [详细]
  • 前言本篇为大家总结社区多人合作常见的场景和对应的git操作命令。本篇非新手教程,阅读本篇前需具备Git基础知识。Git入门教程请参考https://www ... [详细]
  • git向远程仓库提交遇到的各种坑
    **码云***gitinit初始化本地仓库gitinit*gitremoteaddorigingitgithub.com:xueqinngchennLocal-agent.git将 ... [详细]
author-avatar
mobiledu2502916737
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有