我们公司有一个项目想要作为开源发布。该存储库在内部托管,它包含历史记录,其中包括我们团队的姓名和电子邮件。
开源项目将托管在外部存储库 Github 上。为了便于说明,我们假设团队成员是 Alice、Bob 和 Charlie,公司名称是 ACME。
是否可以利用 git 来完成以下任务:
- 继续以
Alice 等人
的身份做出 promise ,并在我们的内部存储库中保持完全透明 - 将代码发布到公共(public)存储库时,提交应压缩为一个,就好像它们是由名为
ACME
的用户(而不是Alice等
) - 团队成员之一
Bob
将充当内部和外部存储库之间的桥梁。他的职责是作为Bob
在内部工作,并偶尔将累积的团队提交推送到远程存储库,作为ACME
。
主要思想是隐瞒同事的身份,保护他们的隐私。外部存储库允许其他人为项目做出贡献,而不让他们进入我们的基础设施。
全世界应该看到该公司所做的所有工作都是由 ACME
完成的,而无法查看代码开源发布之前的历史。
如何实现这一点,或者我们可以考虑哪些替代方案?
最佳答案
提交(或者 Git 中的任何对象)的身份是其内容的加密校验和。提交的内容包括作者和提交者的姓名和电子邮件地址。如果您进行的另一次提交与具有未模糊的名称和/或电子邮件地址的提交完全相同,但名称和/或电子邮件地址被模糊,则该其他提交是不同的提交.
结果是您拥有两个完全不同且不混溶的存储库。这是维护的噩梦。 可以做到,但绝对不值得这样做。
关于git - 当 git 存储库有多个远程仓库时,如何保护提交者的身份?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54960376/