Git 子项目
Git Sub Projects
我知道这个问题已经回答了很多次,但我是 git 的新手,而且我特别笨,所以我需要一些详细的帮助。
我有一个网站,其中的主目录谈论我的编程经验(显然这是一个很短的页面,因为我是 git 的新手)。它有多个子目录,每个子目录都是一个推销页面和我完成的项目的描述。我正在尝试弄清楚如何最好地组织它并将其推送到 github。 This solution 看起来像我想做的,但我似乎无法理解如何去做。
我的目录结构是这样的:
www/apps/
apps-files
spark/
spark-files
minder/
minder-files
我希望每个项目页面都有自己的 README.md,并希望能够将超链接发送到每个项目页面的 git 中心页面。如果它有所作为,我还将为这些网站描述的每个项目提供单独的回购协议。
我已经创建了其中一个页面的大部分内容,但尚未创建 git 存储库或提交任何内容。
如果其他人对此有疑问,我将简单地逐步介绍我所做的事情:
在 Github 中,我为 apps/、spark/ 和 minder/ 创建了新的远程存储库。
在 www/apps/spark/ 我做了:
git init
git add --all
git commit -m "initial commit"
git add remote origin <github web address for spark repo>
git push -u origin master
然后我 cd
到 www/apps/minder 并使用 minder 存储库再次执行所有操作。我确认所有内容都正确托管在 github 上,然后在 www/apps 中我使用 rm -rf spark && rm -rf minder
完全删除了两个文件夹。接下来,我在带有应用程序存储库的 www/apps 根文件夹中执行了上述相同的五个步骤。
最后,在www/apps我运行以下
git submodule add <github web address for spark repo> spark
git submodule add <github web address for minder repo> minder
git submodule init
git submodule update
在我的本地系统上,这给我留下了问题中列出的文件夹布局。要对 spark 或 minder 进行更改,我只需确保从它们的文件夹中进行推送,并且当我推送应用程序时,我需要记住在需要时使用子模块进行推送。这种方法的缺点是 minder 和 spark 在我的 github 帐户中托管了两次,分别作为单独的存储库和内部应用程序,但我对此没有问题。
奖励回合!
我还创建了一个 dev 文件夹,这样我就可以在同一系统上托管测试和生产代码。是这样工作的:
- 对于所有三个回购协议,我从 Github 网页
添加了一个 'dev' b运行ch
- 创建与 apps/ 同级的 dev/ 文件夹
cd dev
git clone <github web address for apps repo> apps
cd apps
git submodule init
git submodule update
git checkout dev
cd minder
git checkout dev
cd www/test/apps/spark
git checkout dev
现在我有两个并行的文件夹树(因此有两个并行的网站,因为这是在家庭服务器上),在测试文件夹中,我所有的推送都转到开发 b运行ch:
www/apps/
apps-files
spark/
spark-files
minder/
minder-files
www/test/
apps/
apps-dev-files
spark/
spark-dev-files
minder/
minder-dev-files
我知道这个问题已经回答了很多次,但我是 git 的新手,而且我特别笨,所以我需要一些详细的帮助。
我有一个网站,其中的主目录谈论我的编程经验(显然这是一个很短的页面,因为我是 git 的新手)。它有多个子目录,每个子目录都是一个推销页面和我完成的项目的描述。我正在尝试弄清楚如何最好地组织它并将其推送到 github。 This solution 看起来像我想做的,但我似乎无法理解如何去做。
我的目录结构是这样的:
www/apps/
apps-files
spark/
spark-files
minder/
minder-files
我希望每个项目页面都有自己的 README.md,并希望能够将超链接发送到每个项目页面的 git 中心页面。如果它有所作为,我还将为这些网站描述的每个项目提供单独的回购协议。
我已经创建了其中一个页面的大部分内容,但尚未创建 git 存储库或提交任何内容。
如果其他人对此有疑问,我将简单地逐步介绍我所做的事情:
在 Github 中,我为 apps/、spark/ 和 minder/ 创建了新的远程存储库。
在 www/apps/spark/ 我做了:
git init
git add --all
git commit -m "initial commit"
git add remote origin <github web address for spark repo>
git push -u origin master
然后我 cd
到 www/apps/minder 并使用 minder 存储库再次执行所有操作。我确认所有内容都正确托管在 github 上,然后在 www/apps 中我使用 rm -rf spark && rm -rf minder
完全删除了两个文件夹。接下来,我在带有应用程序存储库的 www/apps 根文件夹中执行了上述相同的五个步骤。
最后,在www/apps我运行以下
git submodule add <github web address for spark repo> spark
git submodule add <github web address for minder repo> minder
git submodule init
git submodule update
在我的本地系统上,这给我留下了问题中列出的文件夹布局。要对 spark 或 minder 进行更改,我只需确保从它们的文件夹中进行推送,并且当我推送应用程序时,我需要记住在需要时使用子模块进行推送。这种方法的缺点是 minder 和 spark 在我的 github 帐户中托管了两次,分别作为单独的存储库和内部应用程序,但我对此没有问题。
奖励回合!
我还创建了一个 dev 文件夹,这样我就可以在同一系统上托管测试和生产代码。是这样工作的:
- 对于所有三个回购协议,我从 Github 网页 添加了一个 'dev' b运行ch
- 创建与 apps/ 同级的 dev/ 文件夹
cd dev
git clone <github web address for apps repo> apps
cd apps
git submodule init
git submodule update
git checkout dev
cd minder
git checkout dev
cd www/test/apps/spark
git checkout dev
现在我有两个并行的文件夹树(因此有两个并行的网站,因为这是在家庭服务器上),在测试文件夹中,我所有的推送都转到开发 b运行ch:
www/apps/
apps-files
spark/
spark-files
minder/
minder-files
www/test/
apps/
apps-dev-files
spark/
spark-dev-files
minder/
minder-dev-files