0

我是最近从 SVN 切换到 GIT 的新手,我面临的问题是什么是在 GIT 中组织我的所有项目文件的好方法。

我的项目通常由四种类型的数据组成,即。

  1. 应用程序(包含与 Web 应用程序相关的文件)
  2. 设计(包含设计师提供的PSD文件)
  3. 模板(包含前端开发人员提供的 HTML/CSS 文件)
  4. 文档(包含与项目文档相关的文件,由客户提供)

在 SVN 中,我曾经在 root 中创建上述四个目录,并会要求相应的团队成员签出特定目录作为他们需要的目录。

例如

  • UI 设计师只需要访问“设计”目录。
  • 前端团队只需要访问“模板和设计”目录。
  • 后端程序员只需要访问“模板和应用程序”目录。
  • 管理员需要访问所有目录。

在 SVN 中实现这一点很容易,因为我只需签出所需的目录并继续提交相同的内容以使更改生效,但在 GIT 中有所不同,因为我了解到我无法克隆一个存储库中的特定目录。

我希望对 GIT 遵循相同的做法,并希望团队能够访问他们需要的资源,而不是全部。

由于 GIT 不允许我克隆一个特定的目录,我在想可能会创建不同的分支并相应地存储可能是个好主意。或者我可以为每种类型的数据创建一个分支?

我不关心谁访问什么的权限,如果设计师可以访问 App 或 Document 目录对我来说没问题,唯一的一点是我不希望每个人都克隆整个存储库,因为它对每个团队都没有意义会员下载他们不需要的所有内容。以及它如何增加下载/上传时间,因为平均而言,仅设计目录就包含大约 300-400 mb。

请说明处理这种情况的好方法是什么?

PS:我正在使用bitbucket作为存储库

谢谢

4

2 回答 2

1

我不相信这可以直接使用 git,但是,有 2 个选项:

  • 为每个组件使用单独的分支
  • 为每个组件创建一个单独的存储库。

我建议创建一个单独的存储库,因为分支会破坏实际的分支。例如,如果您想为“MYSITE_V2”的每个组件分支,您最终会为每个分支创建一个分支。可能会变得混乱。

第三种选择是接受这个限制。如果您的开发人员只需要克隆一次 repo,然后他们推送/拉取更改,那么带宽问题就会减轻。只需训练他们了解他们的工作位于 repo 的子目录中。他们会明白的。

于 2013-08-03T12:26:30.920 回答
1

根据您的信息,我会建议以下两种选择之一:

  1. 在自己的存储库中拥有 4 个不同的“集中区域”中的每一个,或者
  2. 将您的每个集中区域都放在一个分支中,都在同一个存储库中。

我赞成第一个,因为它更容易处理。只需创建存储库名称,如“project-app”、“project-design”等。

如果您选择每组有一个分支,则需要为每个分支设置远程跟踪分支。

如果有人在其中一个分支上开始长期开发并需要其他人协作,则使用他们各自的存储库,您只需要担心远程跟踪分支。

你甚至可以复制 SVN 的组织(我觉得这很有帮助),在每个客户端上创建一个 / 目录,然后只用它们的“基本”名称检查你需要的存储库,比如

mkdir my_project
cd my_project
git clone https://me@bitbucket.org/me/my_project-app.git app
git clone https://me@bitbucket.org/me/my_project-design.git design

等等...所以你的目录结构将和你在 SVN 中的一样,带有 /my_project/app、/my_project/design 等。

因此,您的每个重点领域都将拥有单独的本地存储库。

于 2013-08-03T12:35:06.133 回答