为3人团队设置Git?

时间:2009-02-15 14:00:58

标签: git version-control gitosis

这篇文章的目的是总结所有信息,以便在竞赛中为3人设置一个封闭的存储库。请随意将问题添加到我没有注意到的列表中。请将每个问题的每个答案添加为单独的答案。

  1. 情况A:草稿和文件可以在3个人之间进行交换。该 writer只能将文件推送到 库中。
  2. 情况B:与上述类似,但所有队友都可以将文件推送到存储库。
  3. 有关情况A的一般问题

    • 如何为人员A,B和C设置远程分支,以便团队成员可以查看其团队成员想要分享的文件?
    • 如何将人A设置为独裁者,谁只能将更改推送到神圣的存储库?

    有关情况A的初步问题

    1. How can you set up a Git repository, where people A, B and C can pull? 我认为Git已成功安装到存储库
    2. 你怎么能让作家只推?
    3. 有关两种情况的高级问题

4 个答案:

答案 0 :(得分:13)

情况A

听起来你想要设置一个integration manager workflow。在这种情况下,人员A创建一个初始存储库,它是神圣的存储库。每个人,A,B和C,克隆其个人工作的存储库。当人B或C有他们希望A包含在存储库中进行共享的东西时,他们将其提交到他们的本地存储库,并要求A从他们的存储库中提取(拉取请求);人员A为人员B和人员C的存储库设置远程,然后可以git pull personBgit pull personB合并更改。人A然后git push合并后的更改进入神圣的存储库。

您可以设置克隆并推送各种传输。最简单的方法是在ssh上使用git协议。如,

  1. Person A制作神圣的存储库:请参阅此page from 37signals的“创建远程存储库”。假设它位于/local/git/project.git sharedhost上。您可以省略--shared=group,因为您希望它成为集成存储库。 (此处的写访问权限使用Unix文件权限进行保护。)
  2. 人员A,B和C,在其主目录中,克隆该存储库。

    cd ~/src
    git clone ssh://sharedhost//local/git/project.git
    cd project # edit files in here.
    git commit
    
  3. 人员A为B和C的存储库设置遥控器。

    git remote add personB ssh://sharedhost/~b/src/project
    git remote add personC ssh://sharedhost/~c/src/project
    
  4. 现在,A人可以git pull personB来获取B的更改。当A感到高兴时,他会git push将新合并的更改推送到共享仓库,B和C可以git pull来获取它们。

  5. 如果设置存储库听起来有点复杂,您可能需要向GitHub等提供商付款,以便为您处理共享git存储库的所有托管。他们也可以帮助您解决问题。 对我来说,我发现最棘手的部分是理解提交的流程。一旦你得到了,事情开始变得更有意义。这discussion at gitready.com可能有助于为您澄清事情。还有一个涵盖类似材料的screencast

答案 1 :(得分:1)

  
      
  1. 如何设置Git存储库,人员A,B和C.   能拉吗?
  2.   

您需要使用ssh -protocol(ssh username @ ipAddress),并通过在托管存储库的计算机(Source)上为其提供帐户,为3个人提供ssh访问权限。

我建议为您的团队成员提供SSH密钥。 请参阅the post。 这允许他们通过运行来克隆,例如:

git clone user@machine:/path/to/repo.git

已发展的问题

  

如何为3提供帐户?   人呢?

如果您的文件必须是私密的,我建议您在Github有一个帐户,这需要花费几美元。您也可以通过Gitosis在自己的服务器上设置回购。

如果您的文件可以打开,我建议您使用Github,因为它是免费的。


更为发达的问题

  

如何将用户添加到Git中   存储库

您可以通过在Git分支上运行以下代码将您的用户添加到您的团队

git add remote UserName ssh://ADDressToTheRepo

命令示例

git add remote schacon git://github.com/schacon/ticgit.git

一个更加发达的问题

  

如何添加朋友的分支?   你的Git?

请在the thread查看我的回答。

答案 2 :(得分:0)

有人建议我使用Gitosis,它引发new problem 如果您没有sudo访问权限,首先设置Python-setuptools,如何为您的服务器设置Gitosis?

安装Gitosis的解决方案:请参阅the post以安装最新的Python。请注意,您的系统可能有一个旧的Python。如果不更新整个操作系统,则无法更新system-Python。例如,您无法更新Mac Leopard的Python,因为系统依赖于它。

现在,您可以开始安装python-setuptools。请参阅the post进行安装。

答案 3 :(得分:0)

  

如何有效地报告错误   你的队友?

我在向队友报告错误和功能请求时遇到了问题。

软件TicGit为我解决了问题。它是Git的票务系统,只需将其设置为项目的单独分支即可安装。