单系统用户环境下的git存储库

单系统用户环境下的git存储库,git,svn,dvcs,Git,Svn,Dvcs,在SVN中,可以让几个人在存储库的一个工作副本上工作。SVN提示输入用户名和密码,并将提交归因于登录的用户,即使他们使用一个系统用户访问服务器 然而,在git中,我找不到一种轻松完成这项任务的方法。我知道首选的工作流是为每个开发人员提供一个存储库克隆,但在某些情况下这是不可能的 有没有办法解决这个问题?Git或任何DVC都不支持“集中式”身份验证。也就是说,你可以用你想要的任何字符串签署每个提交 我在通用工作树中管理它的方法是为git定义一个别名: 别名指的是一个包装器,它: 要求输入用户名和

在SVN中,可以让几个人在存储库的一个工作副本上工作。SVN提示输入用户名和密码,并将提交归因于登录的用户,即使他们使用一个系统用户访问服务器

然而,在git中,我找不到一种轻松完成这项任务的方法。我知道首选的工作流是为每个开发人员提供一个存储库克隆,但在某些情况下这是不可能的


有没有办法解决这个问题?

Git或任何DVC都不支持“集中式”身份验证。也就是说,你可以用你想要的任何字符串签署每个提交

我在通用工作树中管理它的方法是为git定义一个别名:
别名指的是一个包装器,它:

  • 要求输入用户名和电子邮件,然后设置
    GIT\u作者姓名
    GIT\u作者电子邮件
    GIT\u提交人姓名
    GIT\u提交人电子邮件
  • 调用实际的
    git
    可执行文件,并将所有参数最初传递给包装器

从那里,所有git命令都使用正确的凭据完成。

为什么克隆不可能?你没有在repo中存储大量的二进制数据,是吗?@larsmans:当你在树结构中定义一个由普通帐户(即不是实际的人类用户)管理的git repo时,可能会发生这种情况。然后,您需要使用通用帐户名以外的其他名称对每个提交进行身份验证(否则,由于所有提交都会引用同一个“帐户”,因此信息量不大)。@VonC:我经常遇到这种情况;解决方案一直是克隆到开发人员自己的空间。@VonC:git实际上并不关心当前登录名;在每个克隆中,您可以配置不同的用户;然后,每个开发人员都需要使用自己的克隆才能正确签名。这应该是足够的场景,除非有像larsmans一样的磁盘空间限制noted@Petr:git关心当前登录,以便计算默认作者名。无法克隆时,需要另一种解决方案。