gpt4 book ai didi

git - (还有一个)修改 git 历史以添加第一次提交

转载 作者:太空狗 更新时间:2023-10-29 13:08:51 25 4
gpt4 key购买 nike

我正在修改其他人的(非 git)代码。我下载了原版,随后进行了修改,然后立即行动并将修改后的版本作为我的第一次提交。这是一个错误,我应该在第一次提交时添加原始下载的代码。

然后雪上加霜的是,我添加了原始代码作为我第一次编辑的一个分支。换句话说,它现在一团糟:(

简单来说,我所拥有的看起来像下面的蓝色图表。 C5 是实际的原始代码,C1、C2-C6 是我逐步修改的(C4 是多余的)。我宁愿让绿色成为我的历史。

enter image description here

任何想法如何修改历史来完成这个?

非常感谢,

狡猾的

最佳答案

我已完全在命令行中完成此操作,但我将插入来自 SourceTree 的屏幕截图来说明发生了什么。

首先从 C5 提交中获取提交 ID (50da9c3) 的前 7 或 8 位数字,并将其放入剪贴板或文本编辑器或其他内容中 - 稍后您将需要它

为了确认,这是我们的起始状态:

enter image description here

以下是到达目的地的步骤:

创建一个新的非根分支以开始从命名基础构建提交

git symbolic-ref HEAD refs/heads/base

现在从 git 中删除所有文件和目录

git rm --cached -r .

现在所有文件都“未跟踪”,将它们从本地工作目录中删除

git clean -d --force

现在创建一个什么都没有的提交(这将是构建其他所有内容的提交)。

git commit --allow-empty -m'Initial Commit'

你的树现在应该是这样的:

enter image description here

现在挑选 c5 提交(你在剪贴板上的内容)

git cherry-pick 50da9c3

enter image description here

现在将 master 分支重新根植到 base 分支上

git rebase --onto base --root master

enter image description here

现在可以删除base和c4-c5分支

git branch -d base

enter image description here

git branch -D c4-c5branch

enter image description here

请记住“初始提交”是一个没有文件的空提交,所以不要被愚弄了。 C5 提交实际上是第一个基于内容的提交。

关于git - (还有一个)修改 git 历史以添加第一次提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10081308/

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