删除作者的所有提交

丹西

如何删除某些作者的所有提交(错误提交-在提交历史记录中不应显示该作者)。

我找到了一些要重命名的代码-

git filter-branch --env-filter '
OLD_EMAIL="[email protected]"
CORRECT_NAME="name"
CORRECT_EMAIL="[email protected]"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_AUTHOR_NAME="$CORRECT_NAME"
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags


git push --force --tags origin 'refs/heads/*'

是否有一些不重命名但删除此类提交的过滤器?

安德烈亚斯·沃尔夫(Andreas Wolf)

您可以这样做:

  1. 根据要开始的提交创建一个新分支:

    git checkout -b <branch-name> <base-commit>
    
  2. Cherry-pick没有匹配作者的所有提交:

    git log --author "<name>" --invert-grep --reverse --format="format:%H" HEAD..master | xargs git cherry-pick
    

log出了提交人所有提交的过滤器,然后cherry-pickŞ他们一一之后。

参数的说明(部分引自git log联机帮助页):

  • --author "name"
    将提交输出限制为具有与指定模式(正则表达式)匹配的作者/提交者标题行的提交。如果有多个--author =,则选择其作者与任何给定模式匹配的提交(对于多个--committer =则类似)。
  • --invert-grep
    将提交输出限制为使用日志消息与--grep =指定的模式不匹配的提交
  • --reverse以相反的顺序输出提交。[…]
  • --format="format:%H" 使用自定义格式,在这种情况下,仅提交哈希

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Git所有分支上每位作者的提交次数

获取提交的所有注释,包括他们的作者和提交者

git将作者所有分散的提交压缩到一个提交中

Git从所有提交中删除文件

删除所有提交的侦听器

Git - 删除所有尚未推送的提交

IntellijIdea,如何删除所有提交信息

删除特定的提交,但之后保留所有提交

如何将同一作者的所有提交分组为一行?

在所有分支中搜索字符串,但将提交限制为特定作者?

如何获得一位作者在回购中的所有提交消息?

更改所有分支机构的作者和提交者的姓名和电子邮件

Azure Devops:所有分支上作者的搜索提交历史记录

删除所有没有最近提交的远程分支

Git命令提交所有更改,包括删除或创建的文件

从 Mercurial 分支中的多个(所有)提交中删除文件?

Git从所有先前的提交中删除特定文件

想要从git中的分支删除所有提交

从所有以前的 git 提交中删除 .idea 目录

如何重置远程Git存储库以删除所有提交?

如何删除主题Git分支的所有提交?

编辑所有Git提交消息以删除行

如何删除我所做的所有本地Git提交?

如何根据旧提交删除所有兑现数据?

更改 Git/GitHub 存储库的作者姓名和电子邮件,为所有提交保留时间戳

如何在 git 中删除作者或提交者

如何从所有未推动的Git提交中删除大于给定大小的所有文件?

获取特定作者的所有href

查询DBPedia以获取作者的所有书籍