当我第一次开始使用这个仓库时,我之前没有使用过git,并且通过错误输入我的电子邮件或者其他东西来掩盖设置,所以所有提交一段时间都是由用户做出的“未知”。我在这里找到了一个答案,将所有“未知”提交转换为我的名字,但它实际上做的是复制提交并应用我的名字。所以现在我把所有这些“未知”的用户提交分散了。
所以我想知道一些命令要运行以删除“未知”用户的所有提交。
答案 0 :(得分:16)
您必须使用git filter-branch
(在您的仓库中)并强制推送到github。
手册中的示例处理几乎与您要删除特定用户的提交相同的情况:
git filter-branch --commit-filter '
if [ "$GIT_AUTHOR_NAME" = "Darl McBribe" ];
then
skip_commit "$@";
else
git commit-tree "$@";
fi' HEAD
请注意,这会重写您的历史记录,并且可能会影响其他同时使用您对协作者的repo.Github建议的人:
与合作者打交道
您可能有合作者拉动您的污点分支并创建 他们自己的分支机构。他们取出你的新分支后,他们 将需要在他们自己的分支上使用git rebase来重新绑定它们 新的顶部。合作还应确保他们的分支机构 不重新引入文件,因为这将覆盖.gitignore 文件。确保您的协作使用rebase而不是合并,否则他 将重新引入文件和整个污染的历史...和 可能会遇到一些合并冲突。