如何擦除git作者提交历史记录?

时间:2015-07-29 08:30:12

标签: git gitlab

我有一个内部gitlab存储库。

存储库托管了许多项目。

其中一些项目是定制的外部开源项目。

我希望提交历史记录仅反映内部完成的提交。

那么如何删除原作者及其提交的名称,以便它不会出现在gitlab的分析历史中。

3 个答案:

答案 0 :(得分:2)

要删除旧提交,请使用git checkout --orphan

示例:

提交历史记录:

* 5 History you want to keep
* 4 History you want to keep
* 3 First commit you want to keep
* 2 Commit you want to delete
* 1 Commit you want to delete

Git命令:

git checkout --orphan new_root 2
git commit -m'truncated history'
git rebase --onto new_root 2 master
git branch -D new_root

将2替换为您想要删除的最后一次提交的哈希值。

您必须使用git push origin master --force更新服务器上的代码。所有提交的哈希都将更新,因此您需要更新任何功能分支。

答案 1 :(得分:0)

我刚删除了.git文件并执行了新的git init。

此解决方案的问题是:

  1. 它删除了包括我团队完成的所有git提交。

  2. 你会失去你可以学到的所有历史记录。

  3. 最好保留备份。

答案 2 :(得分:-1)

修改git历史记录的最简单方法之一是filter branch

使用类似的东西,并根据您的使用情况进行调整:

push --force

不要忘记之前备份您的存储库,并且您必须使用{{1}},因为它会更改提交ID。