【问题标题】:How to use TFS credentials as commit author?如何使用 TFS 凭据作为提交作者?
【发布时间】:2017-08-24 01:06:57
【问题描述】:

似乎在我们的 Team Foundation Server 2015 上,当我检查团队项目的 GIT 存储库时,它会将提交作者归因于用户的 .gitconfig 文件中的 [user] 下的任何内容。我觉得这是错误的,因为每个人都使用他们的 TFS 凭据(AD 凭据)登录到我们的 TFS 服务器,那么为什么我不希望能够将提交追溯到特定的 TFS 团队成员呢?

这是否可以在 TFS 或 GIT 存储库服务器端进行配置?

【问题讨论】:

    标签: git tfs


    【解决方案1】:

    Git 提交是离线创建的,然后推送到远程。在这种情况下,远程是 TFS,但远程也可以是 GitHub、文件共享中托管的存储库,甚至是本地 PC 上的另一个文件夹。

    所以基本上,没有。提交是根据用户的.gitconfig 在本地创建的。你无法改变它。

    【讨论】:

    • 但是 GitHub 提交不是归属于 GitHub 用户帐户吗?
    • GitHub 通过查看用户的电子邮件地址将提交映射到用户帐户。如果你克隆 repo,你仍然可以看到提交是使用什么创建的。
    【解决方案2】:

    不,这是不可能的,这是设计使然,因为 git 是一个去中心化 VCS。

    为了能够交换提交,git 使用 sha1,它是允许确保提交(及其所有历史记录)是唯一的哈希值。

    这个 sha1 是根据文件内容和提交元数据计算得出的。其中一些是作者和提交者的姓名和电子邮件。

    如果您想在推送时更改此元数据,则必须修改提交并以不同的 sha1 结束。

    如果 sha1 变了,那么一路 git work 就不能再工作了……

    凭据只是用来验证您是否有权推送某些提交,而不是验证或更改您推送的内容。

    PS:你可以使用命令git cat-file -p SHA1_OF_A_COMMIT查看提交的元数据

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-13
      • 1970-01-01
      • 2015-03-08
      • 1970-01-01
      • 2018-12-26
      • 2012-01-17
      • 2021-11-02
      • 1970-01-01
      相关资源
      最近更新 更多