4

我有一个 git repo,我用它来开发我的应用程序,现在我想部署到 Heroku。但是我不想部署这个 repo 本身,而是在这个 repo 中构建代码。我的构建系统dist在我的 repo 目录中创建了一个目录,其中包含在任何地方部署所需的一切。它被设置为在 .gitignore 中被忽略,因为没有必要存储它,因为它可以随时重建并且是多余的。然而,Heroku 需要一个 git repo 来进行部署。我可以手动将输出复制dist到我为 Heroku 保留的其他一些 repo 中,但这看起来真的很难看。我希望能够开发源代码,构建部署代码,并将前者推送到 GitHub/Lab,而将后者推送到 Heroku,而不会发生重叠。

我想要的是这样的:我的dist文件夹是它自己的 git repo,以满足 Heroku,它不包含在父开发 repo 的历史中,即当我将我的开发 repo 推送到 GitHub 或 GitLab 时,该dist文件夹被忽略. 当我将内容推dist送到 Heroku 时,它不知道它包含在开发项目中。这样,我的构建过程会自动更改我的部署存储库,我可以在必要时提交以标记部署事件。

如果可能的话,我不确定如何设置它。我听说过关于子模块的可怕事情,我什至不确定这是适合这项工作的工具,因为它似乎更多地与在我的内部包含其他外部存储库相关。在这里,我想创建一个只存在于我的父仓库中的仓库。

如果有其他具有类似设置的人比我所要求的更了解某些东西,我愿意接受想法。

4

1 回答 1

4

我会创建另一个名为“dist”的分支:

git checkout -b 'dist'

在该分支中,我将更改 gitignore 文件,以便包含“dist”文件夹。

然后我会像这样将我的 dist 分支推送到 heroku:

git push heroku dist:master

那对你有用吗?

于 2013-08-12T09:47:12.553 回答