GIT中的目录组织

时间:2013-08-03 12:14:50

标签: git bitbucket

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

我的项目通常包含四种类型的数据,即。

  1. App(包含与Web应用程序相关的文件)
  2. 设计(包含设计师提供的PSD文件)
  3. 模板(包含前端开发人员提供的HTML / CSS文件)
  4. 文档(包含与项目文档相关并由客户提供的文件)
  5. 在SVN中,我曾经在root中创建上面提到的四个目录,并要求相应的团队成员检查特定目录,看他们需要什么。

    例如

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

    在SVN中很容易实现这一点,因为我只是检查所需的目录并继续提交相同的更改才能生效,但它在GIT中有所不同,因为我得知它对我来说是不可能的克隆存储库中的一个特定目录。

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

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

    我对访问内容的权限并不感到困扰,如果设计人员可以访问App或Document目录,那对我来说没问题,唯一的一点就是我不希望每个人都克隆整个存储库,因为它没有意义为每个团队成员下载他们不需要的一切。以及它如何也会增加下载/上传时间,因为平均而言,设计目录大约只有300-400 mb。

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

    P.S:我正在使用bitbucket作为存储库

    由于

2 个答案:

答案 0 :(得分:1)

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

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

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

第三种选择是接受此限制。如果您的开发人员只需要克隆一次repo,然后他们推送/拉动更改,则可以减轻带宽问题。只需培训他们,了解他们的工作是在回购的子目录中。他们会明白的。

答案 1 :(得分:1)

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

  1. 将4个不同的“浓度区域”分别放在自己的存储库或
  2. 将每个浓度区域放在一个分支中,所有这些都在同一个存储库中。
  3. 我赞成第一个,因为它会更容易处理。只需创建存储库名称,如“project-app”,“project-design”等。

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

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

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

    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等。

    因此,您将为每个重点领域提供单独的本地存储库。