当我开始使用这个仓库的时候,我之前没有使用过git,由于我的电子邮件输入错误或其他原因,所有的提交记录在一段时间内都是由用户“unknown”进行的。我在这里找到了一个答案,将所有“unknown”提交记录转换为我的名字,但实际上它只是复制了提交记录并应用了我的名字。所以现在我有很多分散的“unknown”用户提交记录。
因此,我想知道是否有一些命令可以运行来删除所有“unknown”用户的提交记录。
因此,我想知道是否有一些命令可以运行来删除所有“unknown”用户的提交记录。
您需要在您的代码库中使用git filter-branch
,并将其强制推送到Github。
以下是官方文档中处理几乎相同情况的示例,其中您想要删除特定用户提交的内容:
git filter-branch --commit-filter '
if [ "$GIT_AUTHOR_NAME" = "Darl McBribe" ];
then
skip_commit "$@";
else
git commit-tree "$@";
fi' HEAD
处理协作者
您可能有协作者拉取了您有问题的分支并创建了自己的分支。在他们获取您的新分支后,他们需要在自己的分支上使用git rebase将它们重新基于新分支。协作者还应确保其分支不会重新引入该文件,因为这将覆盖.gitignore文件。确保您的协作者使用rebase而不是merge,否则他将重新引入该文件和整个有问题的历史记录...并可能遇到一些合并冲突。
skip_commit
确实缺失了。它在官方文档中有提到,链接为https://git-scm.com/docs/git-filter-branch#_examples。 - jv-k