如何移除 GitHub 中的 contributors

530 字
3 分钟
如何移除 GitHub 中的 contributors

如果你在某次 commit 时,忘记 git config 设置自己的 username 和 email了,发现仓库主页 contributors,多了一个contributor,那么如何才能移除呢?

虽然官方没有移除contributor的办法,但是我们可以替换掉所有的username和email啊 这样全都是我们提交的了

通过 git filter-branch Git 内置的重写历史工具,允许批量修改提交记录。

--commit-filter指定一个自定义脚本,针对每个提交执行操作。脚本的返回值会替换原始提交。

将作者信息替换为新的姓名和邮箱

Terminal window
git filter-branch --commit-filter '
if [ "$GIT_AUTHOR_EMAIL" = "old email@example.com" ];
then
GIT_AUTHOR_NAME="new username";
GIT_AUTHOR_EMAIL="new email@example.com";
git commit-tree "$@";
else
git commit-tree "$@";
fi' HEAD

再将提交者信息替换为新的姓名和邮箱

Terminal window
git filter-branch --commit-filter '
if [ "$GIT_COMMITTER_EMAIL" = "old email@example.com" ];
then
GIT_COMMITTER_NAME="new username";
GIT_COMMITTER_EMAIL="new email@example.com";
git commit-tree "$@";
else
git commit-tree "$@";
fi' HEAD

这两个命令的作用是重写Git提交历史,将特定作者邮箱的提交修改为新的作者姓名和邮箱。

当然官方推荐使用更安全的替代工具 git filter-repo。

至此commit记录里面的作者改掉了,可是那该死的主页上还有contributor怎么办?

我们可以拷贝一个版本库,在新的仓库里面提交。

  1. 在 GitHub 上创建一个全新的仓库,并且创建一个main 分支
  2. 将原来版本库重命名,并且将内容拷贝到新的仓库
  3. 新的仓库就是完完全全修改了git记录的仓库了

怎么样很简单吧

建立好代码备份后,在本地仓库添加新创建的远程仓库,移除掉原来旧的远程仓库,拉取新的仓库,最后把本地强制覆盖远程仓库

Terminal window
git remote add localrepository https://github.com/your-account/new-repository.git
git remote remove origin
git pull localrepository
git push --force-with-lease localrepository main

最后,再将新的仓库 git clone 下来开发。

至此,新的仓库保留了所有的git记录,并且username和email也改掉了,新仓库首页也没有该死的contributors了,めでたいめでたい。至于旧的祝他幸福。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

如何移除 GitHub 中的 contributors
https://sukksa.github.io/posts/ru-he-yi-chu-github-zhong-de-contributors/
作者
Sukksa
发布于
2025-04-06
许可协议
CC BY-NC-SA 4.0
相关文章智能推荐
1
从零开始的npm教程
gitnpm 是 Node.js 的标准包管理器,它允许你下载别人写好的代码(称为“包”或 package)直接在你的项目中使用,同时也帮助你管理这些代码之间的 依赖关系 (即你的项目运行所需要的外部代码)。 package.json 是 Node.js 项目中最重要的文件,如果没有它,npm 就不知道你…
2
将 Hexo 提交到仓库
git这是一个 Hexo 双仓库管理问题(一个是用于存放 静态网页 的 xxx.github.io ,一个是用于存放 源代码 的 hexo code )。 提交不上去是因为 Git 配置冲突 或者 .gitignore 设置不当 造成的。
3
从现有git仓库切换到另一个仓库
git此方法会 保留 原有的 origin (指向 url1 ),同时 新增 一个指向 url2 的远程仓库。这样本地仓库就可以同时与两个远程仓库进行通信。
4
react-hooks
reactReact 的核心是组件。v16.8 版本之前,组件的标准写法是类(class)。 任何一个组件,可以用类来写,也可以用钩子来写。下面是类的写法。 再来看钩子的写法,也就是函数。 官方推荐使用钩子(函数),而不是类。因为钩子更简洁,代码量少,用起来比较"轻",而类比较"重"。而且,钩子是函数,更符合…
5
关于 cesium 在 micro-app 下无法显示的问题
cesium基座:vite + vue3 子应用:vite + vue3 micro app v1.0.0 rc.29, cesium v1.135 子应用包含一个 cesium map,在基座打开子应用时,cesium 无法显示地图,但是 sence, sky box, model 都能正常显示,唯独地图不显…
随机文章随机推荐
Profile Image of the Author
Sukksa
记录前端学习与日常
公告
博客刚刚上线,内容还在慢慢补齐。欢迎随便逛逛~
分类
标签
最新动态
站点统计
文章
69
分类
16
标签
17
总字数
178,517
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Cloudflare Pages
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0

当前页面没有目录

文章目录

当前页面没有目录