2010-02-12 13 views
14

Uygulamam Heroku'da barındırılıyor ve benim de genel bir github repo'm var.Genel veri depolarını barındırmak için github'u kullanarak hassas veri dosyalarının takılmadan kalmasını sağlayın.

Uygulamamın amazon S3 kimlik bilgilerini içeren bir yapılandırma dosyası var. Dosyanın heroku'ya değil github'a itildiğinden emin olmak önemlidir.

Bu nedenle, master şubemi heroku'ya taşıyabileceğimi ve ayrı bir github şubesi oluşturabileceğimi ve .3d dosya dosyasının benim s3.yml dosyasına başvurduğundan emin olduğumu düşünüyordum. Daha sonra sadece github dalını github.com'a itmek için "git itme kökeni github: master" komutunu kullanabilirim.

Bu, ilk işlem için uygun olur.

Ama sonra ana şubeme geçiyorum, müthiş bir kod yazıp hepsini kahramana doğru itiyorum. Daha sonra github şubeme geri dönüp "git birleştirme ustası" yı alıyorum, böylece yeni kod buna ekleniyor. Ancak bu, ana daldaki s3.yml ve gitignore dosyalarının github dalına kopyalanmasını sağlar. Cue kafadan masaya beceriyor oturumu.

Yinelenen dosyaların izlenmemiş kalmasını sağlarken, şubelerin senkronize olmasını sağlamanın yolları konusunda herhangi bir öneri var mı? Git istemem S3.yml dosyasına ve farklı .gitignore dosyasına katılmamaya söyleyebilir miyim?

Burada ölü bir atı mı kesiyorum? Ben henüz özel bir github hesabı için ödeme haklı olamaz ama ben sadece bu .... veya proje kilitleyici

için geçiş yapmayı gerektireceğini hayal ediyorum, bu sorunun sadece crap git becerileri ve bir yolu var ... şimdiden teşekkürler

EDIT ::: Kabul edilen cevap harika bir çözümdür, ancak daha fazlasını sevdiğim yeni bir tane buldum. Burada okuyun: http://docs.heroku.com/config-vars - Heroku'daki zeki insanlar her şey için bir cevaba sahipler ... Ciddi derecede harika

+0

Heroku'nun çözümü için +1 – Jimmy

+0

Tek yapmanız gereken, S3 kimlik bilgileriniz gibi parametrelerse, Heroku config var çözümü çalışır. Ancak, aynı repoyu, gelişim için ve Heroku'ya itmek için kullanmak istediğiniz bir durum görebiliyorum. Node_modules klasörünüzü Heroku'ya göndermek istersiniz (çünkü Heroku'nun her şeyi yeniden oluşturması önerilir), ancak Github veya Gitlab. Ayrıca, pre-build kaynak kodu gibi çalışmak için konuşlandırmak için Heroku'ya ihtiyacınız olmayan birkaç klasörünüz olabilir. Bunun için özel bir birleştirme sürücüsüne ve birden çok şubeye ihtiyacınız olacak. – neverfox

cevap

10

Ama bu ana daldan s3.yml ve gitignore dosyaları neden

Sen özel emin olun hangi sürücüyü birleştirme bir o önleyebilirsiniz github şube kopyalanan almak Github dalının .gitignore dosyası, içeriklerini her zaman bir master'dan birleştirilmiş olanın üzerine atar. örneğin ~/.yourapp veya böyle bir şey onlara sahip -

How do I tell git to always select my local version for conflicted merges on a specific file?

+0

Teşekkürler! Özel birleştirme sürücüsü tam olarak istediğim şey! Bu arada güzel bir yazı. – stephenmurdoch

+1

Bunun istediğiniz şeyi yapamayacağını unutmayın - dalın başı doğru dosyaya sahip olacak, ancak Git'i kullanarak birleştirme yaptıysanız, baştaki taahhütte her ikisi de erişilebilir olmalıdır. Birisi sizin github şubenizden, diğeri ise hala şifrelerinizi içeren ana daldan olacaktır. –

2

SVN'de buna 'dosyaların göz ardı edilmesi' denir, bu yüzden GIT'de benzer bir şey olacağını farz ediyorum - GYTE yüzden bu konuda bana teklif yok kullanmak ama Github web sitesinde bu başvuruyu buldum:

http://github.com/guides/ignore-for-git

Umut size "alternatif olarak Heroku adında bir şube kullanırsanız

+0

Şu anda bu bağlantıda ayrıntılı olarak açıklanan yöntemi kullanıyorum, ama yine de teşekkürler :) – stephenmurdoch

0

yardımcı olur ana "hassas verilerle" dalını ve hassas verileri olmayan eski ana dalınızı Böylece her zaman ana dalı değil, kahramana dalını kahramana itebilirsiniz.

+0

teşekkürler ama bu yine de aynı sorunla sonuçlanıyor. Eğer yeni heroku branşında gelişirse, her zaman değişikliklerin master (github) dalında birleştirilmesi gerekir, bu da yapılandırma dosyalarının kopyalanacağı ve eğer ana dalda gelişirse, o zaman yapılandırmaya ihtiyacım var demektir Aksi takdirde benim app mevcut dosyaları geliştirme sırasında çalışmaz. Yine de teşekkürler. – stephenmurdoch

1

Belki tamamen git den uzak "tehlikeli" dosya taşımak olabilir bakın.(Bu soruya doğrudan cevap vermez ama ne kadar yazılımın yaptığı - .fetchmail, .ssh, ...) ve diğer kullanıcıların da aynısını yapmasına izin verir.

İlgili konular