如何管理其他git存储库子文件夹中的git存储库?

如何管理其他git存储库子文件夹中的git存储库?,git,github,bitbucket,Git,Github,Bitbucket,我有以下目录 我现在的处境是,我和爱丽丝和鲍勃在梅因迪尔共同工作。 但我只想管理其他存储库中的Charles目录 ├─main_dir │ ├─Alice │ ├─Bob │ └─Charles 我的问题是,, 我如何在main_dir(主存储库)中协同工作,同时在单个存储库中管理我的工作 我有三个想法 git init在main_dir/Charles中 工作完成后,我在main_dir中执行“git push main_repository master” 然后转到main_dir

我有以下目录

我现在的处境是,我和爱丽丝和鲍勃在梅因迪尔共同工作。 但我只想管理其他存储库中的Charles目录

├─main_dir
│  ├─Alice
│  ├─Bob
│  └─Charles
我的问题是,, 我如何在main_dir(主存储库)中协同工作,同时在单个存储库中管理我的工作

我有三个想法

  • git init在main_dir/Charles中
    • 工作完成后,我在main_dir中执行“git push main_repository master”
    • 然后转到main_dir/Charles并执行“git push individual_repository master” 但是,我担心这会使主存储库太重
  • 创建新的\u Charles目录并移动新的\u Charles git init。然后,将我的作品从main_dir/Charles复制粘贴到new_Charles
    • 工作完成后,我在main_dir中执行“git push main_repository master”
    • 并将粘贴主目录/Charles复制到新目录
    • 然后转到新的“git push individual_repository master” 但是,它太低效了
  • 管理2.gitignore文件。第一个用于主存储库,另一个用于单个存储库。单个存储库的gitignore文件忽略Alice和Bob目录
    • 工作完成后,我在main_dir中执行“git push main_repository master”
    • 和switch.git忽略文件。(.gitignore->.main\u gitignore和.indi\u gitignore->.gitignore)
    • 和“git推送单个存储库主库”
    • 最后,重新切换.gitignore文件。(.gitignore->.indi_gitignore和.main_gitignore->.gitignore) 但是,更改gitignore文件的工作记录在提交历史记录中

    我认为这里发生的事情是,有三个开发人员都在同一个项目上工作,希望协调他们的工作。我认为您也犯了一个常见的错误:将开发与部署混为一谈;也就是说,
    main\u dir
    是一个生产目录

    使用Git的分支和推/拉机制,而不是在主存储库的子目录中有单独的存储库,然后复制周围的更改。您还需要单独的步骤来部署更改。这太多了,太基本了,无法在这里描述。这是要点

    • 有一个单一的中央存储库,您可以从中进行推拉操作
    • 每个开发人员在中央存储库之外都有自己的存储库
    • 每个开发人员都推送到中央存储库
    • 每个开发人员都从中央存储库获取更新
    • 您可以从中央存储库进行部署
    例如,假设中央存储库是
    /path/to/repo
    。这是一个,没有文件被签出。从
    /path/to/repo
    不执行任何代码,部署是一个单独的步骤

    每个开发人员在他们自己的工作区(可能是他们的主目录)中都将
    git clone/path/to/repo
    。他们会在他们的仓库里工作。当它准备好后,他们将推送它。当他们想从其他开发人员那里得到更新时,他们
    git-pull

    当您想要部署时,您将有另一个克隆从
    /path/to/repo
    拉入生产。注意,使用Git进行部署是一个坏主意,但它会起作用


    更多信息,请阅读。考虑使用GITS托管服务,如GITHUB和。并研究更复杂的工作流程,例如。

    Alice、Bob和Charles之间的关系是什么?为什么Charles会出现在main_dir中?Alice、Bob和Charles是开发不同功能的开发人员的笔名。出于安全考虑,我使用笔名而不是功能。你为什么不使用“分支”?你们每个人都可以维护自己的分支,你们可以选择合并或“挑选”其他分支中的更改到你们自己的分支@권순규 它们需要在同一个目录中吗@권순규
    main\u dir
    是运行生产代码的目录吗?