Git 是一个免费和开源的分布式版本控制系统,旨在以速度和效率处理从小型到大型项目的所有内容。项目 Commit Messag,尤其更新设备之后,很可能在会出现谬误(Author Name 或 Author Email),为防止被社会工程攻击,应该及时做修改。本文旨在探讨“如何更新 Git Message 中敏感数据”。
假如出现 Author Email / Author Name 错误,只需运行如下命令即可(部分关键字需要替换成你要修改的内容):
git filter-branch --commit-filter '
if [ "$GIT_AUTHOR_EMAIL" = "your-secret-email" ];
then
GIT_AUTHOR_NAME="your-can-be-known-name";
GIT_AUTHOR_EMAIL="your-can-be-known-email";
GIT_COMMITTER_NAME="your-can-be-known-name";
GIT_COMMITTER_EMAIL="your-can-be-known-email";
git commit-tree "$@";
else
git commit-tree "$@";
fi' HEAD
当执行完上述(筛选分支)操作之后,Git 保留对旧提交的引用,再次执行类似命令,将会报出如下错误:
Cannot create a new backup.
A previous backup already exists in refs/original/
Force overwriting the backup with -f
你可以在 .git/refs/original/
中找到,可选择删除该目录和其中的所有文件;或者使用 -f
标志强制 git 删除旧的引用,参见如下命令:
git filter-branch -f \
--commit-filter '
if [ "$GIT_AUTHOR_EMAIL" = "your-secret-email" ];
then
GIT_AUTHOR_NAME="your-can-be-known-name";
GIT_AUTHOR_EMAIL="your-can-be-known-email";
GIT_COMMITTER_NAME="your-can-be-known-name";
GIT_COMMITTER_EMAIL="your-can-be-known-email";
git commit-tree "$@";
else
git commit-tree "$@";
fi' HEAD
备注:需要说明的是,执行如上命令,需要先处理掉本地修改(Changes)。
您可能感兴趣的文章