我有一个git repo,我已经习惯开发我的应用程序,现在我想部署到Heroku。但是我不想部署这个repo本身,而是在这个repo中构建代码。我的构建系统在我的repo目录中创建一个dist
目录,其中包含在任何地方部署所需的所有内容。它被设置为在.gitignore中被忽略,因为它不需要存储它,因为它可以随时重建并且是多余的。但是,Heroku需要一个git repo进行部署。我可以手动将dist
中的输出复制到我为Heroku保留的其他回购中,但这看起来真的很难看。我希望能够开发源代码,构建部署代码,并将前者推送到GitHub / Lab,后者推送到Heroku而不会重叠。
我想要的是这样的:我的dist
文件夹是它自己的git repo,以满足Heroku,这不包含在父dev repo的历史中,即当我将我的dev repo推送到GitHub或GitLab,dist
文件夹被忽略。当我将dist
的内容推送到Heroku时,它不知道它包含在开发项目中。这样我的构建过程就会自动更改我的部署仓库,我可以在必要时对其进行提交以标记部署事件。
我不确定如何设置它,如果可能的话。我听说过关于子模块的可怕事情,我甚至不确定这是否适合这项工作,因为它似乎更多地涉及到我的其他外部回购。在这里,我想创建一个只在我的父仓库中生活的仓库。
如果有其他类似设置的人知道比我要求的更好的东西,我会接受这些想法。
答案 0 :(得分:4)
我会创建另一个名为'dist'的分支:
git checkout -b 'dist'
在该分支内部,我会更改gitignore文件,以便包含'dist'文件夹。
然后我将我的dist分支推送到heroku:
git push heroku dist:master
这对你有用吗?