我有个项目要部署到 你好。源代码树包括一组 mp3文件(该网站将是一个录音项目,我深入参与)。
我想把它的源代码放在 GitHub上,但是 GitHub 对他们的免费账户有300MB 的限制。我不想在一堆 mp3文件上使用50MB 的限制。显然,我可以将它们添加到 .gitignore
文件中,以防止它们出现在我的回购文件中。
然而,我使用 git push heroku
部署到 Heroku。Mp3文件必须存在于我推送到 Heroku 的分支中,这样它们才能得到部署。
理想情况下,我希望在我的本地主分支中将 mp3文件 .gitignore
,这样当我将其推送到 GitHub 时,就不会包含 mp3文件。然后我会保留一个本地生产分支,提交而不是忽略 mp3。为了部署,我会将 master 合并到生产环境中,然后将生产部门推到 Heroku。
我不能让它正常工作。
这里有一个我正在尝试做的例子..。
$ git init git-ignore-test
$ cd git-ignore-test
$ echo "*.ignored" >> .gitignore
$ git add .gitignore && git commit -m "Ignore .ignored files"
$ touch Foo.ignored
此时,我的主分支中已经忽略了 Foo.Igore,但是它仍然存在,因此我的项目可以使用它。
$ git checkout -b unignored
$ cat /dev/null > .gitignore
$ git add Foo.ignored .gitignore && git commit -m "Unignore .ignored files"
现在我有了一个分支,可以随心所欲地提交这些文件。然而,当我切换回我的主分支时,Foo.邻居就消失了。
有人有更好的建议吗?
编辑: 只是澄清一下,我希望 mp3文件在两个分支中都存在,这样当我在本地运行站点时(使用任何一个分支)站点都能正常工作。我只希望在一个分支中忽略这些文件,这样当我推到 GitHub 时,它们也不会被推到。通常是这样。Gitignore 在这种情况下工作得很好(例如,保留一个文件的本地副本,这个文件没有包含在一个远程推送中) ,但是当我切换到签入文件的分支,然后回到忽略文件的分支时,文件就会消失。