在一个相对较大的项目中,使用签出CRLF和提交LF的策略。为此,我的系统使用:
git config --global core.autocrlf true
Run Code Online (Sandbox Code Playgroud)
但是,当提交文件(在本例中为.gitattributes文件)时,会返回警告:
LF would be replaced by CRLF in .gitattributes
Run Code Online (Sandbox Code Playgroud)
文件.gitattributes本身包含该行* text=auto !eol,并且文件本身使用 LF 行结尾。
为什么会发生这种情况?为什么 Git 告诉我要小心,因为它会将 LF 转换为 CRLF,即使我希望此文件在存储库中以 LF 结尾进行规范化?
我一定错过了一些完全明显的东西,因为我已经经历过:
还有更多,但这仍然没有像我想象的那样工作。
我帮助维护的一个项目中的GitLab贡献者视图已经“损坏”了一段时间了。看来 GitLab 无法理解某些用户名和/或电子邮件地址属于同一用户。
目前,我们的 GitLab贡献者视图显示以下内容:
Dev A <dev_a@company.com>
DevB <dev_b@company.com>
devb <dev_b@private.com>
Dev C <dev_c@company.com>
Dev D <dev_d@private.com>
Dev D <dev_d@company.com>
DevD <dev_d@company.com>
...
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,有些人是相同的,尽管他们由不同的贡献者条目代表。在本表中,此类示例包括:
其中开发人员 B 有两个用户名,分别与不同的电子邮件地址相关联,而开发人员 D 具有与两个地址相关联的相同用户名,以及与两个不同用户名相关联的相同地址。
最初尝试通过 GitLab 提供的 Web UI 来解决此问题。在GitLab > 用户设置 > 电子邮件中,电子邮件可以与帐户关联。对于Dev D的个人资料,如下所示:
dev_d@company.com (Verified) [Primary email][Commit email][Default notification email]
dev_d@education.com (Verified)
dev_d@private.com (Verified)
Run Code Online (Sandbox Code Playgroud)
到目前为止,这表明两者<dev_d@company.com>都<dev_d@private.com>与同一帐户关联。这不足以让 GitLab 将这些地址映射到贡献者视图中的同一用户。
我们进行了第二次尝试,提供了一个.mailmap文件,其中包含主用户名/电子邮件地址到辅助用户名/电子邮件地址的映射。
当前.mailmap文件如下所示:
Dev …Run Code Online (Sandbox Code Playgroud)