彻底清除git的所有历史提交记录,使其成为一个“新”库。
基于之前的仓库重新开发,这样可以保留之前的配置文件,但是所有的历史记录,标签,分支等。需要删除;
由于自身或者其他方面的特殊需要,需要保留仓库的一些属性(创建时间、描述、主页等。),但要清除历史,使之成为“新图书馆”。
基于以上三个需求,需要提供一个解决方案,在不删除原仓库的情况下,清除原仓库的所有历史提交记录(包括分支和标签)。
语法:git check out-孤儿
示例:git check out-orphan latest _ branch
使用- orphan选项,可以创建1个“干净的”分支(没有提交历史,但是当前分支的内容都是可用的。但严格来说,这样创建的分支并不是真正的分支,因为HEAD指向的引用中没有commit值,提交一次后才算真正的分支。
新的分支机构名称可以随意命名,但不能与以前的分支机构名称冲突。这里特别强调的是,许多人习惯于在默认情况下将分支名称创建为master。
本文采用latest_branch作为新的分支名称,没有特殊含义。只要符合以后的使用,就可以自定义。
通用仓库的默认主分支是主分支。如果原来的主分支不是主分支,请使用实际的主分支名称。
注意:部分仓库有主分支保护,不允许强行推送。在推送之前,您需要暂时关闭远程仓库项目中的项目保护。
注意:在推送之前,需要使用git remote -v查看关联的远程存储库的信息(主要是远程存储库的别名)。尽管默认情况下远程库的别名是origin,但您可能设置了另一个别名(不是origin)。
在推送之前,需要设置一些情况:git branch-set-upstream-to = origin/master master。
别人不拉倒,你可以敲。
可以登录远程仓库再次确认。
这里把以上步骤封装成一个bat批处理脚本(针对windows),双击运行。
文件名:fetch _ push _ clear _ all _ history . bat。
将文本内容保存为UTF-8格式,最好将文件放在git存储库之外。如果您将它放在git存储库中,您需要过滤这个文件。gitignore。
复制这篇文章。