2010-02-12 12 views
14

मेरा ऐप Heroku पर होस्ट की है रहते हैं और मैं एक सार्वजनिक GitHub रेपो भी है, जबकि सार्वजनिक Git संग्रह की मेजबानी के लिए GitHub का उपयोग करना।सुनिश्चित करना है कि संवेदनशील डेटा फ़ाइलों को ट्रैक न किए गए

मेरा ऐप एक config मेरी अमेज़न S3 प्रमाणिकता वाली फ़ाइल है। यह सुनिश्चित करना महत्वपूर्ण है कि फ़ाइल को उसकेोकू में धकेल दिया जाए लेकिन जिथब नहीं।

तो मैं सोच रहा था कि मैं अपनी मास्टर शाखा को उसकेोकू में धक्का दे सकता हूं और एक पृथक जिथब शाखा बना सकता हूं और यह सुनिश्चित कर सकता हूं कि यह है .gitignore फ़ाइल मेरी s3.yml फ़ाइल का संदर्भ देता है। GitHub शाखा पुश करने के लिए

यह पहली प्रतिबद्ध के लिए ठीक काम करता है github.com लिए: मैं तो बस "मास्टर Git धक्का मूल GitHub" कर सकता है।

लेकिन तब मैं अपने गुरु शाखा करने के लिए स्विच, कुछ कमाल कोड लिखने और फिर Heroku को यह सब धक्का। मैं फिर अपनी जिथब शाखा में वापस स्विच करता हूं और "गिट मर्ज मास्टर" करता हूं ताकि नया कोड इसमें जोड़ा जा सके। लेकिन इस मास्टर शाखा से s3.yml और gitignore फ़ाइलों GitHub शाखा में नकल करने के लिए कारण बनता है। क्यू हेड-टू-डेस्क बैंगिंग सत्र।

तरीके सुनिश्चित करना है कि ट्रैक न किए गए फ़ाइलों ट्रैक न किए गए रहने, जबकि ऊपर synched शाखाओं रखने के लिए पर कोई सलाह है। क्या मैं गिट को अवांछित S3.yml फ़ाइल और अलग-अलग .gitignore फ़ाइल में विलय नहीं कर सकता?

क्या मैं यहां एक मृत घोड़े को फटकार रहा हूं? मैं अभी तक एक निजी गिथब खाते के लिए भुगतान का औचित्य साबित नहीं कर सकता हूं, लेकिन मुझे लगता है कि उत्तर में ऐसा करने में शामिल होगा .... या प्रोजेक्ट लॉकर

मुझे उम्मीद है कि यह समस्या मेरे बकवास गिट कौशल के लिए नीचे है और कि एक रास्ता है .... अग्रिम धन्यवाद

संपादित करें: स्वीकृत उत्तर एक अच्छा समाधान है, लेकिन मुझे अभी एक नया मिला है जिसे मैं और अधिक पसंद करता हूं। इसके बारे में यहां पढ़ें: http://docs.heroku.com/config-vars - हरोकू में उन चालाक लोगों के पास सब कुछ का जवाब है ... गंभीरता से भयानक

+0

हेरोकू के समाधान के लिए +1 – Jimmy

+0

हेरोोक कॉन्फ़िगरेशन var समाधान काम करता है यदि आप जिनकी देखभाल करते हैं, वे आपके S3 प्रमाण-पत्र जैसे पैरामीटर हैं। लेकिन मैं एक ऐसी स्थिति देख सकता हूं जहां कहें, आप विकास के लिए और हेरोोकू को धक्का देने के लिए एक ही रेपो का उपयोग करना चाहते हैं। आप अपने नोड_मोड्यूल फ़ोल्डर को हेरोकू में भेजना चाहते हैं (चूंकि हेरोोकू सबकुछ पुनर्निर्माण करने की सिफारिश की जाती है) लेकिन गिथब या गिटलैब नहीं। साथ ही, आपके पास कई फ़ोल्डर्स हो सकते हैं जिनके लिए आपको पूर्व-निर्माण स्रोत कोड जैसे काम पर तैनाती के लिए हेरोोकू की आवश्यकता नहीं है। इसके लिए, आपको कस्टम मर्ज ड्राइवर और एकाधिक शाखाओं की आवश्यकता होगी। – neverfox

उत्तर

10

लेकिन इस मास्टर शाखा से s3.yml और gitignore फ़ाइलों का कारण बनता है GitHub शाखा में नकल करने के लिए

आप कस्टम जो करने के लिए सुनिश्चित कर देगा चालक विलय एक साथ कि बच सकते हैं जिथब शाखा की .gignignore फ़ाइल हमेशा मास्टर से विलय किए गए पर अपनी सामग्री को बनाए रखेगी।

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

+0

धन्यवाद! कस्टम मर्ज ड्राइवर बिल्कुल वही है जो मैं चाहता था! रास्ते से अच्छा लिखना। – stephenmurdoch

+1

ध्यान दें कि यह संभवतः ऐसा नहीं कर सकता जो आप चाहते हैं - शाखा के प्रमुख में इसमें सही फ़ाइल होगी, लेकिन यदि आपने गिट का उपयोग करके विलय किया है तो हेड प्रतिबद्ध में दो माता-पिता होंगे, दोनों सुलभ होंगे। एक आपकी जिथब शाखा से और दूसरा मास्टर शाखा से होगा, फिर भी आपके पासवर्ड होंगे। –

2

एसवीएन में इसे 'अनदेखा फाइल' कहा जाता है, इसलिए मुझे लगता है कि यह जीआईटी में कुछ समान होगा - मैं नहीं का उपयोग GIT तो मुझे इस पर बोली नहीं है, लेकिन मैं GitHub वेबसाइट पर इस संदर्भ मिल गया है:

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

आशा है कि मदद करता है

+0

मैं कुछ समय के लिए उस लिंक पर विस्तृत विधि का उपयोग कर रहा हूं, लेकिन वैसे भी धन्यवाद :) – stephenmurdoch

0

आप अपने "विकल्प के रूप में Heroku नाम के एक शाखा का उपयोग करते हैं मास्टर "शाखा (संवेदनशील डेटा के साथ) और संवेदनशील डेटा के बिना आपकी पुरानी मास्टर शाखा आप हमेशा

git merge master 

तो आप हेरोकू शाखा को उसके शाखा में नहीं बल्कि मास्टर शाखा में धक्का दे सकते हैं।

+0

धन्यवाद लेकिन यह अभी भी एक ही समस्या में परिणाम देता है। अगर मैं नई हेरोकू शाखा में विकसित होता हूं, तो मुझे हमेशा मास्टर (गीथब) शाखा में परिवर्तनों को मर्ज करने की आवश्यकता होगी, जिसका अर्थ है कि कॉन्फ़िगरेशन फाइलों की प्रतिलिपि बनाई जाती है और यदि मैं मास्टर शाखा पर विकसित होता हूं, तो मुझे कॉन्फ़िगरेशन की आवश्यकता होती है अन्यथा उपलब्ध ऐप मेरे ऐप विकास के दौरान काम नहीं करेगा। हालांकि धन्यवाद। – stephenmurdoch

1

आप शायद पूरी तरह से Git से दूर स्थानांतरित कर सकता है "खतरनाक" फ़ाइलें - जैसे उन्हें ~/.yourapp या ऐसा ही कुछ में है।(जो वास्तव में सीधे सवाल का जवाब नहीं देता है लेकिन यह कितना सॉफ़्टवेयर करता है - .fetchmail, .ssh, ...) और अन्य उपयोगकर्ताओं को ऐसा करने की अनुमति देगा।

संबंधित मुद्दे