是否可以制作远程特定的 .gitignores?

Is it possible to make remote-specific .gitignores?

我使用两个服务,GitHub 和 Heroku。我已经为每个在线存储库设置了遥控器。但是,我希望将一个文件推送到 Heroku,而不是推送到 GitHub。有没有一种简单的方法可以做到这一点,而不必每次我推送到不同的服务时都编辑 .gitignore?

Is there an easy way to do this without having to edit .gitignore every time I push to a different service?

这不是本机 Git 功能。
更好的选择是存储一个 .gitgignore.heroku 文件,并有一个钩子,它可以在接收到推送时或在 heroku 上部署时检测、复制和重命名 .gitgignore.heroku 到工作中树为 .gitgignore.

换句话说,这是一个部署问题,而不是版本控制问题。

正如 VonC 所说,它本身不支持执行您要求的操作。

我认为最好的方法是拥有不同的分支。

例如,您将拥有 master 分支、github 分支和 heroku 分支。

两个分支之间的任何同义词都将位于 master 中,而特定于 githubheroku 的任何内容将位于它们各自的分支中。

不,这是不可能的。 .gitignore 文件或多或少告诉 git 哪些文件要包含到提交中。它对推送哪些文件没有影响。您只能推送完整的提交,因为提交是由包含的文件定义的。