Git deposu geçmişte telif hakkıyla korunan bir projeyi nasıl açık kaynaklı olarak kullanabilirim?


15

Ücretsiz bir lisans altında bir ses parmak izi yazılım projesi yayınlamak istiyorum, ancak depo telif hakkıyla korunan ses dosyaları içeriyor. Test senaryoları şu anda bu dosyaları da kullanmaktadır. Kodu maksimum sürüm geçmişi olan ancak telif hakkını ihlal etmeden nasıl herkese açıklayabilirim?

Detaylar:

  • Kod git altında versiyonlanmıştır. Serbest bırakılmadan önce hepsini bir şubeye daraltacağız.
  • 400 MB ses verisi var. Bazı dosyalar Jamendo'dan ücretsiz lisanslı müzik, diğerleri kişisel koleksiyonlarımızdan MP3'lerdir.
  • Hangi yaklaşımı kullanırsak alalım, proje geçmişini yok etmemek için daima orijinal repo'nun değişmez bir kopyasını tutacağız.

Ana soru: Halka açık nasıl ele alınır?

  1. Söz konusu dosyaların geçmişini git deposundan silin ve değiştirilen repoyu bırakın. (v64 bunu yapmanın bir yolunu işaret etti .)
  2. Alternatif olarak, kodun mevcut durumunun bir anlık görüntüsünü alın ve yayın öncesi kodun genel geçmişine sahip olmaktan bile rahatsız etmeyin.

Yan soru: Bazen bir projenin erken aşamaları için özel kod veya medyanın gerekli olduğu göz önüne alındığında, bu ikilemden nasıl kaçınabilirdik?

Yanıtlar:


13

GitHub, bir dosyanın tüm geçmişten nasıl silineceğini açıklayan bir sayfaya sahiptir: Hassas verileri kaldırın .

Zaman zaman kullanıcılar yanlışlıkla şifre veya anahtar gibi verileri git deposuna kaydederler. git rmDosyayı kaldırmak için kullanabilirsiniz , ancak yine de havuz geçmişinde olacaktır. Neyse ki git, dosyayı tüm depo geçmişinden kaldırmayı oldukça kolaylaştırır.

Tehlike: Taahhüt zorlandıktan sonra, ele geçirilecek verilerin dikkate alınması gerekir. Bir şifre belirlediyseniz, değiştirin! Bir anahtar taahhüt ettiyseniz, yeni bir anahtar oluşturun.

Dosyayı deponuzdan temizleyin

Parola değiştirildiğine göre, dosyayı geçmişten kaldırmak ve .gitignoreyanlışlıkla yeniden işlenmediğinden emin olmak için. Örneklerimiz Rakefileiçin GitHub mücevher deposundan kaldıracağız ...


Bu iş için doğru araç gibi görünüyor. Bu benim durumumda en mantıklı olup olmadığını emin değilim vs kod temeli yeni bir anlık görüntü ile başlayan.
Modlarınıza iyi davranın

@phyzome: Tarihin ne kadar önemli olduğunu düşünüyorsun. Sökme filter-branchkomutuyla oldukça kolaydır --- sadece yıkıcı olduğu ve geri alınamayacağı için deponun bir klonunda çalıştırdığınızdan emin olun.
Sharpie

8

Yan soru: Bazen bir projenin erken aşamaları için özel kod veya medyanın gerekli olduğu göz önüne alındığında, bu ikilemden nasıl kaçınabilirdik?

Büyük medya dosyalarını (400MB ses) izleyecekseniz, ayrı bir depoya koyun.

Bu bir taşla iki kuşu öldürür:

  1. Ana repo 400 MB daha küçük. (İnsanlar her klonlamada 400 MB değerinde içerik indirmek zorunda değildir.)
  2. Medya özel olabilir ve diğer tüm şeylerden ayrı tutulur. Bu nedenle, kamu deposunu serbest bırakmak için fazladan bir çalışmaya gerek yoktur.

İsterseniz, medya deposunu kamu deposunun bir alt modülü haline getirerek (serbest bırakmayı planlıyorsunuz) çalışmayı daha kolay hale getirebilirsiniz .

Bu şekilde (duyarlı) içeriğin kendisini değil, yalnızca ona bir işaretçi tutarsınız (gelişimin ilk aşamaları için). Daha sonra repoyu herkese açık olarak yayınlayacağınız zaman, 400MB değerindeki şeyleri filtrelemek için geçmişinizi yeniden yazmaktan çok daha az zahmetli olan alt modül referansını kaldırın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.