相关疑难解决方法(0)

使用git,如何忽略一个分支中的文件但是在另一个分支中提交它?

我有一个项目,我正在部署到Heroku.源代码树包含一堆mp3文件(该网站将用于我参与的录制项目).

我想把它的源代码放在GitHub上,但是GitHub对他们的免费帐户有300 MB的限制.我不想在一堆mp3文件上使用50 MB的限制.显然,我可以将它们添加到.gitignore文件中,以防止它们被我的回购.

但是,我使用了部署到Heroku git push heroku.mp3文件必须存在于我推送到Heroku的分支中,以便它们得到部署.

理想情况下,我想.gitignore在我的本地主分支中的mp3文件,以便当我将其推送到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
Run Code Online (Sandbox Code Playgroud)

此时,Foo.ignored在我的主分支中被忽略,但它仍然存在,所以我的项目可以使用它.

$ git checkout -b unignored
$ cat /dev/null > .gitignore
$ git add Foo.ignored .gitignore && git commit -m "Unignore .ignored files"
Run Code Online (Sandbox Code Playgroud)

现在我有了一个分支,这些文件已经提交,正如我想的那样.但是,当我切换回我的主分支时,Foo.ignored就消失了.

有人有任何建议可以更好地设置它吗?

编辑:只是为了澄清,我希望mp3文件存在于两个分支中,以便当我在本地运行该站点(使用任一分支)时,该站点可以工作.我只想在一个分支中忽略文件,所以当我推送到GitHub时,它们也不会被推送.通常.gitignore适用于这种事情(即保留一个文件的本地副本,但不会包含在推送到遥控器中),但当我切换到签入文件的分支,然后返回到忽略文件的分支,文件消失.

git gitignore

152
推荐指数
5
解决办法
6万
查看次数

标签 统计

git ×1

gitignore ×1