git - 提交详细信息中显示的被阻止用户
问题描述
我使用包含旧配置的笔记本电脑: git global credentials
git config --global user.email
=>blockeduser@email.com
所以当我用我的用户名和密码推送我的第一个提交时,我在我的提交详细信息中发现了被阻止的用户这是怎么发生的?有没有办法在 Gitlab 的配置中防止这种情况发生?
注意 现在我更改了全局配置,但我问是否有办法防止其他用户将来发生这种情况
解决方案
[编辑]我写了我的长篇答案,然后我看到你提到了 gitlab。
通过谷歌搜索“gitlab block author”,我登陆了这个页面:
https ://docs.gitlab.com/ee/push_rules/push_rules.html#enabling-push-rules
有一个推送规则:
检查作者是否是 GitLab 用户
Starter 7.10
限制作者(电子邮件)对现有 GitLab 用户的提交。
看看你是否可以在你的服务器或帐户上激活那个。
但是,如果您(或任何用户)使用错误的用户帐户在本地创建了提交,您仍然需要在推送之前按如下方式编辑此提交。
首先:有两个地方提到了看起来像用户名的东西:
- 存储在提交中的信息(此提交的作者是
blockeduser@email.com
) - 用于拉取/推送到远程的凭据(在 中的用户名
https://blockeduser@github.com
,或通过 ssh 时与 ssh 密钥关联的用户名)
1.
来自配置参数git config user.name
和git config user.email
,
2.
来自您用于访问远程的 url,以及系统上的一些配置(例如:~/.ssh/config
如果您使用 ssh,可能是 git 使用的凭证管理器等)。
当您说用户被“阻止”时,您可能意味着2.
如果您使用此用户的凭据,那将不再起作用。
1.
然而:即使blockeduser
现在被阻止,保留该用户创建/编辑的过去提交的信息是合法的。
您可能会采取一些措施来拒绝提交者在哪里blockeduser
的新提交,但大多数时候不会对提交的作者/提交者进行检查。
一般规则是:
- update
git
的配置以在您创建的新提交中设置正确的作者/提交者, - 如果您错误地使用其他人的电子邮件创建了一些提交,您可以编辑这些提交和
push -f
结果。
为此,请参阅例如这些 SO 问题:
git commit --amend --author="Author Name <email@address.com>" --no-edit
如何在 Git 中更改多个提交的作者和提交者姓名和电子邮件?
在您的历史记录中发现要重写的第一个提交的 id(例如:)eacf32
并将<parent>
下面替换为eacf32^
:
git filter-branch --env-filter ' OLD_EMAIL="your-old-email@example.com" CORRECT_NAME="Your Correct Name" CORRECT_EMAIL="your-correct-email@example.com" 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 ' <parent>..HEAD
如果所述提交已经合并或包含在其他人的工作中,那么更改它可能会非常麻烦,并且您可能不得不忍受归因于错误作者的提交。
推荐阅读
- android - 当我们在 Android 10 中将 xfermode 用作 PorterDuffXfermode(PorterDuff.Mode.DARKEN) 时,绘制不可见
- reactjs - 如何在 nextjs 中将数据从一个组件发送到另一个组件
- oracle - Oracle DataAdapter Update 方法在 updateBatchSize=0 时只插入一行
- linux - 为什么在嵌入式 linux 上运行的 Qt 应用程序的“ascender”行上方的字体会被削减?
- c# - 有没有一种方法可以序列化包含一个包含更多 json 作为 XML 字符串的字段的 Json
- python - 使用 Python Pandas 的 Excel 'COUNTIF()' 功能
- rdf - 为类的每个成员创建新的实例值
- eclipse - Selenium:我如何上传照片并将其插入电子邮件中?
- ajax - 如何使用从 AJAX 获取 API 调用的 JSON 结果的参数调用另一个函数
- php - 如何在基于 cpanel 的共享主机平台上设置和运行 PHP WebSocket 服务?