ฉันมีโครงการที่ผมนำไปใช้กับHeroku ทรีซอร์สโค้ดประกอบด้วยไฟล์ mp3 จำนวนมาก (เว็บไซต์จะใช้สำหรับโครงการบันทึกที่ฉันเกี่ยวข้องอย่างมาก)
ฉันต้องการวางซอร์สโค้ดสำหรับGitHubแต่ GitHub มีขีด จำกัด 300 MB สำหรับบัญชีฟรี ฉันไม่ต้องการใช้ขีด จำกัด 50 MB กับไฟล์ mp3 จำนวนมาก เห็นได้ชัดว่าฉันสามารถเพิ่มพวกเขาลงใน.gitignore
ไฟล์เพื่อป้องกันพวกเขาออกจาก repo ของฉัน
แต่ผมใช้กับ 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 ถูกละเว้นในสาขาหลักของฉัน แต่ยังคงมีอยู่ดังนั้นโครงการของฉันจึงสามารถใช้งานได้
$ git checkout -b unignored
$ cat /dev/null > .gitignore
$ git add Foo.ignored .gitignore && git commit -m "Unignore .ignored files"
ตอนนี้ฉันได้สาขาที่มีไฟล์เหล่านี้มุ่งมั่นตามที่ฉันต้องการ อย่างไรก็ตามเมื่อฉันเปลี่ยนกลับเป็นสาขาหลักของฉัน Foo.ignored จะหายไป
ใครมีคำแนะนำสำหรับวิธีที่ดีกว่าในการตั้งค่านี้
แก้ไข: เพียงเพื่อชี้แจงฉันต้องการไฟล์ mp3 ที่จะปรากฏในทั้งสองสาขาเพื่อให้เมื่อฉันเรียกใช้เว็บไซต์ในประเทศ (โดยใช้สาขาใดสาขาหนึ่ง) เว็บไซต์ทำงาน ฉันแค่ต้องการให้ไฟล์ถูกละเว้นในสาขาเดียวดังนั้นเมื่อฉันกดไปที่ GitHub พวกเขาก็ไม่ได้ถูกผลักเช่นกัน โดยปกติ. gignignore ทำงานได้ดีสำหรับสิ่งนี้ (เช่นการเก็บสำเนาของไฟล์ที่ไม่ได้รวมอยู่ในการผลักดันไปยังระยะไกล) แต่เมื่อฉันสลับไปที่สาขาด้วยไฟล์ที่เช็คอินแล้วกลับไปที่ สาขาที่ไฟล์ถูกละเว้นไฟล์จะหายไป