繁体   English   中英

可以对多个用户使用相同的git checkout吗?

[英]Possible to use same git checkout for multiple users?

我希望我的团队能够在我们的服务器上单独使用相同的签出存储库来提取更新。 是否可以拥有一份回购副本,以便多个用户可以从其自己的帐户发出拉取/合并请求?

对我git config core.sharedRepository true的计划是(因为这是一个已签出的存储库)运行git config core.sharedRepository true来将存储库设置为共享存储库。 然后,我仔细检查并确保所有git文件的chmod为664,所有文件夹的chmod为775,以允许git的组可写性在用户之间正常工作。 然后,只需让每个用户在其主文件夹中为电子邮件地址,名称等设置自己的用户级git config。

注意:仍需要保持世界可读性以及回购中某些文件的所有权,因为在这种特殊情况下,有问题的回购由我们的开发服务器(Apache)提供服务。

希望这可以帮助!

首先,我建议您阅读Pro Git书中的Distributed Workflows一章 ,并首先确保您了解最适合您的团队的工作流程。

我是一个小团队,我们使用的设置与您建议的相同。 有一个回购协议,所有工作最终都投入了进来。 有多个用户使用不同的unix帐户将其自己的分支拉入,合并和推送。

以下是基本步骤:

  • 确保每个人的登录名都在计算机上的同一组中,例如project_dev
  • chown -R :project_dev <git_location>以确保每个人的帐户都可以访问的git repo。
  • 之后,请确保使用以下git repo-config core.sharedRepository true配置了git repo: git repo-config core.sharedRepository true这使每个人都可以推送到该repo,而不会引起与推送对象的潜在权限冲突。

在您处理完这些事情之后,用户可以使用sftp或本地文件uri与自己的帐户一起使用该存储库。 有很多更高级的方法来使用git处理帐户权限,但这是最简单的方法之一。 查阅Pro Git书和google,了解其他替代方案, Gitolite是更高级的选择之一。

它们都可以使用同一用户进行身份验证,然后只需更改提交的作者即可。

git commit的手册页中:

--author=<author>
Override the author name used in the commit. 
You can use the standard A U Thor <author@example.com [1] > format. 
Otherwise, an existing commit that matches the given string and its author name is used.

答案很短: 是的

这是派生工作方式的基础,例如在GitHub上。 它们只是单独的存储库,每个开发人员可以拥有自己的存储库,对此没有限制。 并且可能有一个(或多个,如果有人愿意的话)存储库,对某些(或所有)开发人员具有只读访问权限,用作生产存储库,其中所有更改都需要由高级开发人员(或其他适当的人员)提出。

同样,也可以将这些派生叉作为所谓的“远程存储库”(远程存储库)添加到本地存储库中,并且只读存储库可以每天用于拉取更改,而读写存储库应用于推送/保存更改。 。 引入请求可以使用各种软件进行-如。 GitHub具有单独的功能。 通常, 拉取请求是一种请求将更改拉入您没有“写”权限的存储库的方法。 具有“写”权限的人可以接受,对其进行评论,对其进行更改或拒绝它,等等,从而使您可以更好地控制此类代码库所发生的事情。

这里的线索是Git是一个分布式版本控制系统 ,您可以有多个存储库,并以所需的方式组织它们。 对于您的开发人员,有些存储库可以是读写存储库,有些则可以是只读存储库。

@BeRecursive还提到了一个概念:进行提交的用户不一定是将更改上传到存储库的用户。 但这是完全不同的想法,很容易被愚弄,因此我认为您不应该依赖这种方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM