Git子项目

时间:2015-03-29 23:22:33

标签: git github

我知道这已经被多次回答,但我是git的新手,而且我特别密集,所以我可以使用一些详细的帮助。

我有一个主目录谈论我的编程经验的网站(显然这是一个非常短的页面,因为我是git的新手)。它有多个子目录,每个子目录都是一个音高页面和我所完成项目的描述。我正在试图弄清楚如何最好地组织这个并将其推送到github。 This solution看起来就像我想做的那样,但我似乎无法理解如何做到这一点。

我的目录结构如下所示:

www/apps/
  apps-files
  spark/
    spark-files
  minder/
    minder-files

我希望每个项目页面都有自己的README.md,并且希望能够向每个项目页面的github页面发送超链接。如果它有所不同,我也会为这些网站描述的每个项目分别进行回购。

我已经创建了其中一个页面的大部分内容,但尚未创建git仓库或提交任何内容。

1 个答案:

答案 0 :(得分:1)

如果其他人遇到此问题,我会简单地逐步介绍我所做的事情:

在Github中,我为apps /,spark / and minder /创建了新的远程存储库。

在www / apps / spark /我做过:

  1. git init
  2. git add --all
  3. git commit -m "initial commit"
  4. git add remote origin <github web address for spark repo>
  5. git push -u origin master
  6. 然后我cd转到www / apps / minder并使用管理员回购再次完成所有操作。我验证了所有内容都正确地托管在github上,然后在www / apps中我使用rm -rf spark && rm -rf minder完全删除了这两个文件夹。接下来,我使用apps repo在根www / apps文件夹中执行了上述相同的五个步骤。

    最后,在www / apps中,我运行了以下

    1. git submodule add <github web address for spark repo> spark
    2. git submodule add <github web address for minder repo> minder
    3. git submodule init
    4. git submodule update
    5. 这使我在本地系统上找到了问题中列出的文件夹布局。要更改spark或minder,我只需确保从他们的文件夹中进行推送,当我推送应用程序时,我需要记住在需要时推送子模块。这种方法的缺点是minder和spark在我的github帐户中托管了两次,既作为单独的回购,也作为内部应用程序,但我没有遇到问题。

      奖金回合!

      我还创建了一个dev文件夹,因此我可以在同一系统上托管测试和生产代码。这就是这样的:

      1. 对于所有三个回购,我添加了一个&#39; dev&#39;来自Github网页的分支
      2. 在与apps /
      3. 相同的级别创建dev /文件夹
      4. cd dev
      5. git clone <github web address for apps repo> apps
      6. cd apps
      7. git submodule init
      8. git submodule update
      9. git checkout dev
      10. cd minder
      11. git checkout dev
      12. cd www/test/apps/spark
      13. git checkout dev
      14. 现在我有两个并行的文件夹树(因此有两个并行的网站,因为这是在家庭服务器上),在测试文件夹中我所有的推送都转到了dev分支:

        www/apps/
          apps-files
          spark/
            spark-files
          minder/
            minder-files
        www/test/
          apps/
            apps-dev-files
            spark/
              spark-dev-files
            minder/
              minder-dev-files