私が取り組んでいるプロジェクトには 2 つのブランチがあります。パブリック ブランチは GitHub にプッシュされ、デプロイ ブランチは Heroku にプッシュされます。deploy ブランチには秘密鍵を含むファイルが含まれており、public ブランチには LICENSE、README.md、秘密鍵ジェネレーターなどのファイルが含まれています。
プロジェクトに変更を加えるときは、展開ブランチで行い、プッシュする準備ができたら、これをパブリック ブランチにマージし、さまざまなブランチをそれぞれのリモートにプッシュします。ただし、デプロイをパブリックにマージしようとすると、Heroku 固有のファイルが追加され、GitHub 固有のファイルが削除されます。
これを防ぐために、リポジトリを同期して完全なマージを行うが、異なる .gitignore ファイルを使用する方法と、マージ中に前述のファイルを無視するために .gitattributes ファイルを使用する方法の 2 つの方法を試しました。どちらも失敗するようです。