ฉันมีโครงการที่ผมนำไปใช้กับ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 ทำงานได้ดีสำหรับสิ่งนี้ (เช่นการเก็บสำเนาของไฟล์ที่ไม่ได้รวมอยู่ในการผลักดันไปยังระยะไกล) แต่เมื่อฉันสลับไปที่สาขาด้วยไฟล์ที่เช็คอินแล้วกลับไปที่ สาขาที่ไฟล์ถูกละเว้นไฟล์จะหายไป