给予UserA“写”访问权限,但UserB正在进行提交

gorkyyrv  于 2022-10-23  发布在  Git
关注(0)|答案(1)|浏览(105)

我已使用用户A的电子邮件地址授予用户A对BitBucket上托管的Git存储库的“写入”权限。但现在我看到的是用户B提交的,他有一个不同的电子邮件地址。
当我转到“用户和组访问”时,我只看到UserA。
这怎么可能?这发生在两个不同的场合;我正在雇用一个人为我的项目工作,但他们正在将工作分包给其他人(这是我不想要的)。

1cosmwyk

1cosmwyk1#

我假设“写访问”仅适用于推送。未检查提交中的提交人和作者信息。它是静态信息,很容易伪造(git rebase --reset-author-date)。你会得到什么?如果你正确地完成了他们的工作,那么谁做了真的重要吗?如果他们让别人做这件事有关系吗?
不要依赖提交中存储的信息。如果您确实必须这样做,那么强制他们对所有提交进行GPG签名,并且只允许签名提交。验证后接收挂钩或管道中的签名。但即便如此,他们也可以伪造作者信息,然后签署承诺书。
所有这些尝试都是徒劳的。听着,我刚刚写了一个“艾伦·P”的承诺:

$ GIT_AUTHOR_NAME='Alan P.' GIT_AUTHOR_EMAIL='alanp@users.stackoverflow.com' git commit -m 'I honestly wrote this code all by myself!'
[master cca77e6] I honestly wrote this code all by myself!
 Author: Alan P <alanp@users.stackoverflow.com>
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 anyfile
$ git log -1
commit cca77e63c2ac4135e65ce0a35f60d05a50e362f8 (HEAD -> master)
Author: Alan P <alanp@users.stackoverflow.com>
Date:   Wed Oct 19 19:20:05 2022 +0200

    I honestly wrote this code all by myself!

或者更简单:

$ git commit --author='Alan P. <alanp@users.stackoverflow.com>' -m 'Another commit that definitely nobody but me authored'

相关问题