Heroku에 배포하는 프로젝트가 있습니다. 소스 코드 트리에는 많은 mp3 파일이 포함되어 있습니다 (웹 사이트는 내가 많이 참여한 레코딩 프로젝트를위한 것입니다).
GitHub 에 소스 코드를 넣고 싶지만 GitHub의 무료 계정에는 300MB 제한이 있습니다. 많은 mp3 파일에 50MB의 제한을 사용하고 싶지 않습니다. 분명히, .gitignore
파일을 파일에 추가하여 내 저장소에서 벗어날 수 있습니다.
그러나을 사용하여 Heroku에 배포합니다 git push heroku
. mp3 파일은 Heroku로 푸시 한 지점에 있어야 배포 할 수 있습니다.
이상적으로는 .gitignore
로컬 마스터 브랜치의 mp3 파일을 GitHub로 푸시하면 mp3가 포함되지 않도록 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
이 시점에서 Foo.ignored는 마스터 지점에서 무시되지만 여전히 존재하므로 프로젝트에서 사용할 수 있습니다.
$ git checkout -b unignored
$ cat /dev/null > .gitignore
$ git add Foo.ignored .gitignore && git commit -m "Unignore .ignored files"
이제 원하는대로 이러한 파일을 커밋 한 지점이 있습니다. 그러나 마스터 지점으로 다시 전환하면 Foo.ignored가 사라집니다.
더 좋은 방법을 제안하는 사람이 있습니까?
편집 : 명확히하기 위해 두 지점에 mp3 파일을 두어 사이트를 로컬로 실행할 때 (두 가지를 사용하여) 사이트가 작동하도록하고 싶습니다. 하나의 브랜치에서 파일을 무시하기를 원하므로 GitHub로 푸시 할 때 파일도 푸시되지 않습니다. 일반적으로 .gitignore는 이런 종류의 작업에 효과적입니다 (예 : 원격 푸시에 포함되지 않은 파일의 로컬 사본 유지). 파일을 체크인 한 상태에서 분기로 전환 한 다음 다시 파일을 무시하고 분기하면 파일이 사라집니다.