首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git:什么是移植物还是移植物?

Git:什么是移植物还是移植物?
EN

Stack Overflow用户
提问于 2011-05-22 14:30:21
回答 2查看 2K关注 0票数 4

git-过滤器-分支上,有人说:

将提交(通常位于另一个历史记录的顶端)设置为当前初始提交的父级,以便粘贴当前历史后面的其他历史记录: git过滤器-分支-父过滤器'sed‘s/^$/-p/“头 (如果父字符串为空--这是在处理初始提交时发生的-将graftcommit添加为父字符串)。

这正是我想要的,即设置某个根提交(B)的父级(提交)。有关相关问题,请参见这里

但这条命令中的嫁接标识到底是什么?是新父母,即A吗?

此外,还提供了一个更简单的例子来实现同样的目标:

或者更简单: 回显"$commit-id $graft id“>> . git /info/grafts过滤器-分支$graft id

同样,在这个例子中,$graft-id应该是什么呢?$commit-id = A,对吗?还是$commit-id = B$graft-id = A

我也读过,但我仍然不明白为什么我需要这样的概念。为什么我不能直接做git filter-branch A..HEAD之类的呢?

好吧,我想我都想通了,看看我自己的答案。

来解释我为什么需要它:

在我们的OpenLieroX项目中,我们曾经有过谷歌的突破版。

我们没有从官方的SVN (因为它当时对我不起作用),而是从最新的LastFM马厩(它只是随机的,是从那里--我也有它在我的磁盘上,并知道LastFM的人可能采取了一些稳定的突破垫版本)。

然后,随着时间的推移,我们应用了几个补丁到我们自己的谷歌突破垫副本。

现在,几个月后,我们想要清理一下历史,得到一个很好的概述,我们所有的补丁到突破垫,也许还能让他们上游。最重要的是(对我们),我们想更新我们的副本的突破垫。

因此,我认为最好的方法是创建一个新的Git存储库,从其中获取正式的源历史,并通过git filter-branch将主存储库中的所有特定内容从主存储库中获取。我用这面碎垫镜子作为基地。filter-branch也要复杂一些,因为我们在OpenLieroX存储库中的某个点移动了整个早餐垫目录。

所以我得到了三个分支:

  • breakpad-in-mainsrcgit filter-branch-在src/breakpad/external的时候先运行。
  • breakpad-in-libsgit filter-branch-在libs/breakpad的时候运行第二次。
  • officialmaster断路镜复制而来。

然后,我在official中搜索提交,它最接近breakpad-in-mainsrc中的根。我没有得到任何完美的匹配,所以我使用了最接近的一个(编写了一个小Python脚本来解决这个问题)。这一个现在被标记为olx-closest-initial-breakpad

然后我想把这三段历史合并在一起。就像上面描述的那样(下面给出了我自己的答案)。

结果是:OpenLieroX谷歌在GitHub上的突破

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-22 14:49:13

这是一个相当模糊的特性。

如果您需要这样做,您最好加倍确保您确切地知道git在幕后是如何工作的,并且您知道您想要实现什么。

此外,还有一个新的、可能更有用(至少更灵活)的特性叫做git replace (手册页)。

IMHO,同样的文档包含了充足的信息,如果你真的需要这个。

但你看

  1. https://git.wiki.kernel.org/index.php/GraftPoint
  2. ..git/info/移植物是干什么用的?
  3. http://bugsquash.blogspot.com/2010/03/stitching-git-histories.html
票数 2
EN

Stack Overflow用户

发布于 2011-05-22 15:00:25

好吧,它似乎像我所期望的那样工作。回答我自己的问题:

  • 嫁接-id实际上只是一个提交id,即提交的SHA1。
  • $commit-id = B (虽然它必须是一个SHA1,但没有标记)
  • $graft-id = A (同样,必须是SHA1)

然后,所给出的更简单的方法如预期的那样工作。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6088551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档