我有个项目要部署到 你好。源代码树包括一组 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 在这种情况下工作得很好(例如,保留一个文件的本地副本,这个文件没有包含在一个远程推送中) ,但是当我切换到签入文件的分支,然后回到忽略文件的分支时,文件就会消失。