Herokuにデプロイするプロジェクトがあります。ソースコードツリーには多数のmp3ファイルが含まれています(このWebサイトは、私が深く関わっていたレコーディングプロジェクト用です)。
そのソースコードをGitHubに載せたいのですが、GitHubの無料アカウントには300 MBの制限があります。一連のmp3ファイルに50 MBの制限を使用したくありません。明らかに、それらを.gitignore
ファイルに追加して、それらを私のリポジトリから遠ざけることができます。
ただし、私はHerokuにを使用してデプロイしgit push heroku
ます。mp3ファイルは、Herokuにプッシュするブランチに存在して、デプロイされるようにする必要があります。
理想的に.gitignore
は、ローカルマスターブランチのmp3ファイルをGitHubにプッシュしたときにmp3が含まれないようにしたいと考えています。次に、mp3が無視されるのではなくコミットされたローカルの本番ブランチを保持します。デプロイするには、マスターを本番環境にマージしてから、本番ブランチを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.ignoredは私のmasterブランチでは無視されていますが、まだ存在しているので、私のプロジェクトで使用できます。
$ git checkout -b unignored
$ cat /dev/null > .gitignore
$ git add Foo.ignored .gitignore && git commit -m "Unignore .ignored files"
これで、これらのファイルがコミットされたブランチができました。しかし、masterブランチに切り替えると、Foo.ignoredはなくなりました。
これを設定するより良い方法について誰かが何か提案をしましたか?
編集:明確にするために、私はmp3ファイルを両方のブランチに存在させて、サイトをローカルで(どちらかのブランチを使用して)実行したときにサイトが機能するようにします。1つのブランチでファイルを無視したいだけなので、GitHubにプッシュすると、それらもプッシュされません。通常、.gitignoreはこの種のこと(つまり、リモートへのプッシュに含まれないファイルのローカルコピーを保持すること)に適していますが、ファイルをチェックインした状態でブランチに切り替えてから、ファイルを無視してブランチすると、ファイルは消えます。