15

该帖子旨在总结所有信息,以在比赛中为 3 人建立一个封闭的存储库。请随时将我没有注意到的问题添加到列表中。请将每个问题的每个答案添加为单独的答案。

  1. 情况 A:草稿和文件可以在 3 人之间交换。writer 只能将文件推送到存储库。
  2. 情况B:同上,但所有队友都可以将文件推送到存储库。

情况 A 的一般问题

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

关于情况 A 的初始问题

  1. 你如何建立一个 Git 存储库,让 A、B 和 C 人可以拉取?我假设 Git 已经成功安装到存储库
  2. 你怎么能允许作家只推?

关于这两种情况的高级问题

4

4 回答 4

13

情况A

听起来您想设置一个集成管理器工作流。在这种情况下,A 人创建了一个初始存储库,即神圣存储库。每个人,A、B 和 C,为他们的个人工作克隆该存储库。当 B 或 C 有一些他们希望 A 包含在存储库中以供共享的内容时,他们将其提交到本地存储库,并要求 A 从其存储库中拉取(拉取请求);人员 A 为人员 B 和人员 C 的存储库设置远程s,然后可以git pull personBgit pull personB合并更改。然后人 Agit push将合并的更改放入神圣的存储库中。

您可以设置克隆和推送各种传输。最简单的是通过 ssh 使用 git 协议。例如,

  1. 人 A 制作了神圣的存储库:请参阅此页面上的 37signals中的“创建远程存储库” 。假设它在/local/git/project.giton 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新合并的更改推送到共享 repo,B 和 C 可以git pull获取它们。

如果设置存储库听起来有点复杂,您可能需要付费给GitHub等提供商来为您处理共享 git 存储库的所有托管。他们也有支持,可以帮助您解决问题。对我来说,我发现最棘手的部分是理解提交的流程。一旦你明白了,事情就开始变得更有意义了。gitready.com上的讨论可能有助于为您澄清事情。还有一个涵盖类似材料的截屏视频。

于 2009-02-15T15:23:25.930 回答
1
  1. 你如何建立一个 Git 存储库,让 A、B 和 C 人可以拉取?

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

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

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

已发展的问题

如何提供 3 个人的帐户?

如果您的文件必须是私密的,我建议您在 Github 上注册一个帐户,费用为几美元。你也可以通过 Gitosis 在你自己的服务器上设置一个 repo。

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


一个更发达的问题

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

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

git add remote UserName ssh://ADDressToTheRepo

命令示例

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

一个更发达的问题

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

请在线程中查看我的答案。

于 2009-02-16T03:45:55.427 回答
0

有人建议我使用 Gitosis,这引发了一个新问题当您没有 sudo 访问权限时,如何通过首先设置 Python-setuptools 将 Gitosis 设置到您的服务器?

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

现在,您可以开始安装 python-setuptools。请参阅帖子以安装它们。

于 2009-03-09T18:26:16.463 回答
0

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

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

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

于 2009-05-23T16:17:22.500 回答