2014-09-04 3 views
6

को हटाए बिना उत्पादन में धक्का दें मेरे पास एक फ़ोल्डर images है जिसे ट्रैक किया जाता था और जिसे मैंने अनचाहे किया था: git rm -r --cached imagesगिट में स्थानीय रूप से अनट्रैक फ़ोल्डर और

मैंने अपने गिटिनोरोर में images/ भी जोड़ा। हालांकि मुझे डर है कि जब मैं अपने उत्पादन सर्वर को प्रतिबद्ध और खींचता हूं, तो छवियों को हटा दिया जाएगा। इसका कारण यह है कि github ऐप वास्तव में दिखाता है कि फाइलें हटा दी गई हैं।

तो मैं git pull पर उत्पादन सर्वर पर हटाए जाने के लिए स्थानीय रूप से हटाए गए, फिर अनचाहे और अनदेखा फ़ाइलों को कैसे रोकूं?

+0

विशेष रूप से कोई कारण नहीं है कि आप इस फ़ोल्डर को संस्करण नियंत्रण के तहत क्यों नहीं रखना चाहते हैं? – Jubobs

+4

क्योंकि जो लोग वास्तव में सामग्री का प्रबंधन करते हैं वे छवियों फ़ोल्डर की सामग्री को ftp के माध्यम से बदलते रहते हैं और गिट नहीं करते हैं। इसके लिए गिट का उपयोग करना अधिक है – Ortixx

उत्तर

6

git rm --cached के साथ, फ़ाइलों को गिट से हटा दिया गया है, हालांकि वे अभी भी आपके स्थानीय फ़ोल्डर में हैं। तो push के बाद, सेवर पर फ़ाइलों को हटा दिया जाएगा, और इसलिए pull पर दूसरों की रिपोजिटरी करें।

git update-index का उपयोग करने का एक बेहतर तरीका है।

git update-index --assume-unchanged images/* 

यह आपकी आवश्यकता को पूरा करना चाहिए। एकमात्र समस्या यह है कि यदि अन्य लोग इन छवि फ़ाइलों को बदलते हैं और गिट सर्वर पर धक्का देते हैं, तो आप pull पर इन परिवर्तनों को अभी भी प्राप्त करेंगे।

1

मैंने वास्तव में इसे एक अलग तरीके से किया। चूंकि गिट (मुझे और एक अन्य डेवलपर) का उपयोग करने वाले केवल 2 लोग हैं, इसलिए हमने स्थानीय रूप से फ़ोल्डर को अनचाहे कर दिया है। मैंने फिर नया .gitignore किया और इसे उत्पादन सर्वर पर खींच लिया। बाद में मैंने उत्पादन सर्वर और वॉयला पर फ़ोल्डर को अनचाहे किया!

0

एक अन्य विकल्प पर विचार करना है कि नई टीम के साथी के लिए बेहतर हो सकता है निर्देशिका है कि जरूरत है जोड़ने के लिए भविष्य में निम्नलिखित उपयोग कर रहा है, फिर भी उनकी सामग्री को छोड़ते हुए:

**/images/* 
!**/images/readme.md 

Git के बाद से खाली साथ ही चिंता का विषय नहीं है निर्देशिका, चाल images निर्देशिका में कुछ भी ट्रैक न करने के लिए गिट को बताना है। लेकिन निर्देशिका को पहली जगह बनाने के लिए, हमें एक फ़ाइल की आवश्यकता है, इस प्रकार हम अंत में कह रहे हैं "इस निर्देशिका में को को छोड़कर इस निर्देशिका में कुछ भी ट्रैक न करें।"

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