gpt4 book ai didi

git - 如何从 git 存储库中完全删除/销毁提交?

转载 作者:IT王子 更新时间:2023-10-29 00:44:01 25 4
gpt4 key购买 nike

从表面上看,这似乎与关于在 git repos 中更改历史的一百万个类似问题相同,但我相信我的情况有点不同,我还没有找到适合我的解决方案。

我有一个 git 存储库,有一次,一位程序员不知何故不小心从另一个存储库中引入了代码,并且那个(以前不相关的)存储库的整个历史现在是我的存储库提交日志的一部分。

查看提交,很明显从之前不相关的 repo 中“引入”此历史记录的确切提交。

在上述提交之后,我们没有触及任何这些文件。

我想从我的存储库中彻底销毁所有这些不相关的提交。我不介意是否必须逐个提交,但我希望我的存储库真正反射(reflect)我们自己的代码。

如果有帮助,结构是这样的:

  • 在 1234 之后提交(最近),不要触及 1234 中引入的任何错误文件

  • commit 1234 - 有几个与我们的代码库相关的文件,并且还 merge 到不相关的 repo 的整个历史记录中

  • 1234 之前的提交(更早的时间)现在是我们自己的提交和不相关 repo 的提交的混合。

最佳答案

您需要进行交互式 rebase :

git rebase -i <hash-of-the-commit-1034>~

从列表中删除提交 1034。运行 git 垃圾收集器:

git gc

push 上游:

git push -f

这将从您的存储库中清除提交 1034。

关于git - 如何从 git 存储库中完全删除/销毁提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11555088/

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