gpt4 book ai didi

git:追溯引入几个 merge

转载 作者:太空狗 更新时间:2023-10-29 13:33:00 26 4
gpt4 key购买 nike

我正在尝试通过(追溯)将 git 应用到我跟踪远程代码库一段时间的项目中来学习 git。当我将所有内容放入 git 时,我只是为所有外部版本创建了一个 remote 分支,并将我的版本放在 master 上,所以目前我的存储库如下所示:

master: A0---A1.0--A1.1--A2.0--A2.1-....
\
remote: B1----------B2-----------....

我的问题是:我如何追溯告诉 git 发生的 merge ,使存储库看起来像这样(不应更改任何代码):

master: A0---A1.0--A1.1--A2.0--A2.1-....
\ / /
remote: B1----------B2-----------....

标准 git 免责声明:以上操作不会影响已发布的历史 :)

编辑:下面是我如何按照凯文的建议使用移植物做到这一点:

首先,我手动创建了 .git/info/grafts 如下(所有条目都是 sha1 的):

A1.0 A0 B1
A2.0 A1.1 B2

然后,在检查一切看起来不错 (gitx) 之后,我不带任何参数地运行 git filter-branch

Filter-branch 将使嫁接永久化,并将对原始提交的引用存储在 refs/originals/... 中,以允许您通过 退出git reset --hard refs/originals/refs/heads/master。由于一切看起来都很好,我按如下方式删除了所有剩菜:

rm .git/info/grafts
rm .git/refs/originals

如果你有垃圾回收,你需要做git update-ref -d refs/originals/refs/heads/master

最佳答案

听起来像你想要的grafts .你可以为你想要的新 merge 创建嫁接(记住在嫁接中包括原始父级!),当一切看起来不错时,使用 git filter-branch(阅读联机帮助页!)来烘焙它在石头上。

关于git:追溯引入几个 merge ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4039682/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com