gpt4 book ai didi

git - 您如何在本地和远程删除分支及其所有历史记录?

转载 作者:IT王子 更新时间:2023-10-29 00:43:22 24 4
gpt4 key购买 nike

我有一个 git 分支,我需要核对所有痕迹。我想我需要类似的东西

git filter-branch --index-filter 'git -D <branch>' --tag-name-filter cat -- --all

或者也许

git filter-branch --index-filter 'git rm --cached *' --tag-name-filter cat -- <branch>

那我就

git push -f origin :<branch>

在不确定它们会做什么或是否有效的情况下,我犹豫要不要尝试它们。

最佳答案

假设你想对 evilbranch 进行核攻击。

你说你想删除一个分支的所有历史。这在技术上包括初始提交,这可能是您想要的更多提交。因此,首先,确定您认为哪个提交是该分支的第一个提交。假设它是 666bad。现在我们需要找到对它的所有引用。运行

git branch -a --contains 666bad
git tag --contains 666bad

现在全部删除。您可以使用 git 命令,也可以直接进入 .git/refs

在每台可能有该文件的计算机上执行此操作。

确保你没有处于分离的状态。

现在我们可以终止所有提交,因此所有代码不再可引用(来自 this gitHub 链接):

git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin
git reflog expire --expire=now --all
git gc --prune=now

同样,这应该在每台计算机上完成。

最后,使用this在每台计算机上。

注意:666badafter evilbranch 从它来自的任何地方拆分出来的第一个提交,即第一个只有 邪恶分支

关于git - 您如何在本地和远程删除分支及其所有历史记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34657031/

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