如何删除某些作者的所有提交(错误提交-在提交历史记录中不应显示该作者)。
我找到了一些要重命名的代码-
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/*'
是否有一些不重命名但删除此类提交的过滤器?
您可以这样做:
根据要开始的提交创建一个新分支:
git checkout -b <branch-name> <base-commit>
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"
--invert-grep
--reverse
以相反的顺序输出提交。[…]--format="format:%H"
使用自定义格式,在这种情况下,仅提交哈希本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句