从多个合并分支中删除多个提交

cmu111

有人给了我一个回购来继续工作。我以为这是公司回购协议,因此我很高兴开始创建分支机构,然后最终将它们合并为一个分支机构,删除了临时分支机构并进行了推送。今天,他告诉我这是他的个人回购消息,因此,如果有可能,我可以从他的回购消息中删除我的烂摊子。我保存了工作并将其移至新的存储库,但是我不知道如何删除提交,因此我不会用我的名字“ D”“弄脏”他的历史

 git reset --hard hislastcommitsha 

不起作用。它移动了头部,但是提交仍然存在。我什至可以检查出来。我希望它们消失,就像它们不存在一样。

我认为它们不会被删除,因为即使只有一个分支(主控),这些提交也来自先前合并的多个分支(开发和主题分支)。

我有什么办法可以从他的历史记录中删除我的提交/名称?

非常感激

罗曼·瓦莱里

(基本假设:您有足够的权利回购,--force因为相反,您的朋友要您清理任何东西将是无法满足的需求)

当您按下分支(master)时,git实际上会推送所有可通过祖先到达的提交,从当前新引用master指向的提交开始

但是,当您最初克隆原始存储库时,其原始版本master指向的是我们要还原的提交,hislastcommitsha

所以你需要

# as you already guessed, rewind your version of master
git reset --hard hislastcommitsha

# then push it to his repo
git push --force origin master

但是,重要的一点:在这一点上,(错误地)推送的新提交不会从其存储库中删除,它们只是未被任何分支引用,因此它们现在是垃圾收集的候选对象。

这就是您仍然可以在本地回购中检出它们的原因。

如果您的朋友出于某种原因不想等待典型的垃圾收集时间,则可以选择使用手动触发它,git gc并且可以选择适合您情况的任何参数,这取决于他。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从 Mercurial 分支中的多个(所有)提交中删除文件?

git-从合并分支中删除提交

同一提交中的多个分支

将多个提交(之间进行合并)从master移到单独的分支中

合并多个功能分支

如何从已删除的未合并分支中删除提交?

Git多个合并分支-如何在合并到主分支时避免多次提交

删除git历史记录中具有多个分支的特定提交?

原始分支合并到主分支后,如何从我的新分支中删除原始分支的提交?

在git中删除多个远程分支

在git中合并多个已经提交的旧提交?

Egit中的远程跟踪分支背后有多个提交

git将多个提交合并为一个孤儿分支中的一个,每个提交都在前缀子目录中

如何删除提交而不是合并的分支

Git在合并和删除分支上提交

将多个功能分支合并到master,而没有其他提交消息?

Intellij删除多个本地分支

从分支中删除特定的提交

从Git中的分支删除提交

将网址与提交表单中的多个相同参数合并

如果分支从未合并到master中,删除该分支还会从仓库中删除其提交吗?

Git:将多个提交从一个分支合并到另一个分支

从主分支中删除单个合并的分支

如何将多个提交合并到另一个分支作为单个压缩提交?

压扁多个分支的祖先的git提交

如何将本地分支 A 中的多个本地提交推送到远程分支 B 并从本地分支 A 中清除它们?

合并合并子库中多个分支的历史记录

Git - 从本地和远程仓库中删除多个先前的提交

Git-在多个分支上合并功能分支