当前位置:  开发笔记 > 开发工具 > 正文

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

如何解决《如何在本地和远程删除分支及其所有历史记录?》经验,为你挑选了1个好方法。

我有一个git分支,我需要克服所有的痕迹.我想我需要类似的东西

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

或者可能

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

然后我会

git push -f origin :

我不愿意在不知道他们会做什么或他们是否会工作的情况下尝试这些.



1> PyRulez..:

假设你想要核武器evilbranch.

您说您要删除所有分支的历史记录.这在技术上包括初始提交,这可能是您想要的更多提交.首先,确定您认为哪个提交是该分支的第一次提交.让我们说吧666bad.现在我们需要找到它的所有引用.跑

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

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

在每台可能包含该文件的计算机上执行此操作.

确保你没有分离头.

现在我们可以杀死所有提交,因此所有代码都不再可引用(来自这个 gitHub链接):

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

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

最后,在每台计算机上使用它.

注意:666bad是从它来自哪里分割 evilbranch的第一次提交,即仅第一次提交evilbranch.

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有