首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用git,我如何忽略一个分支中的文件,而在另一个分支中提交它?

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

Stack Overflow用户
提问于 2009-12-03 07:55:23
回答 4查看 82.4K关注 0票数 171

我有一个要部署到Heroku上的项目。源代码树包括一堆mp3文件(该网站将用于一个我曾大量参与的录制项目)。

我想把它的源代码放到GitHub上,但是GitHub对他们的免费账户有300MB的限制。我不想在一堆mp3文件上使用我限制的50MB。显然,我可以将它们添加到.gitignore文件中,以避免它们出现在我的存储库中。

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

理想情况下,我希望在本地主分支中.gitignore mp3文件,这样当我将其推送到GitHub时,就不会包含mp3s。然后,我会保留一个本地生产分支,它会提交而不是忽略mp3s。要进行部署,我会将master合并到production中,然后将production分支推送到Heroku。

我不能让它正常工作。

这是我想要做的一个例子。

代码语言:javascript
复制
$ 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.ignored,但它仍然存在,所以我的项目可以使用它。

代码语言:javascript
复制
$ git checkout -b unignored
$ cat /dev/null > .gitignore
$ git add Foo.ignored .gitignore && git commit -m "Unignore .ignored files"

现在我有一个分支提交了这些文件,就像我想要的那样。然而,当我切换回我的主分支时,Foo.ignored就消失了。

有没有人有更好的设置方法的建议?

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

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1836742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档