我在github上使用了git仓库。有了存储库中的所有提交和日志,现在我需要从特定用户(例如User1)中删除所有提交。如何删除他的所有提交?
最佳答案
是的。 git filter-branch
的手册页提供了一个现成的示例:从工作树中删除“Darl McBribe”中的所有提交(在您的情况下为User1
)。
git filter-branch --commit-filter '
if [ "$GIT_AUTHOR_NAME" = "Darl McBribe" ];
then
skip_commit "$@";
else
git commit-tree "$@";
fi' HEAD
函数
skip_commit
的定义如下:skip_commit()
{
shift;
while [ -n "$1" ];
do
shift;
map "$1";
shift;
done;
}
但是,一如往常,更改存储库的历史记录时:如果有人在修改存储库之前将其从存储库中 pull 出,请添加he'll be in trouble。