Git Repo से मौजूदा फ़ाइल को निकालें


126

मैं अपनी रिपॉजिटरी में अपने स्थानीय विकास लॉग (लॉग / डेवलपमेंट.लॉग) को ट्रैक करने से रोकना चाहता हूं। क्या यह संभव है और मैं इसे कैसे कर सकता हूं?


जवाबों:


143

बस एक ही बार में पूरा जवाब देने के लिए:

  1. klemens से: आपको .gitignoreरेपो में अवांछित फ़ाइल के ऊपर फ़ाइल को अपनी फ़ाइल में जोड़ने की आवश्यकता है । अर्थात

    $ cd $ बिल्ली >> .itignore development.log Cd

  2. मी से। narebski: आपको तब फ़ाइल को रेपो से git rm --cached <file>हटाकर " निष्पादित करना होगा "

यदि आप रेपो लुक बनाने की उम्मीद कर रहे थे जैसे कि उसने कभी उस फ़ाइल को ट्रैक नहीं किया है, तो यह बहुत अधिक जटिल और अत्यधिक हतोत्साहित करने वाला है क्योंकि यह न केवल आपके इतिहास में हर एक कमिट के लिए एकदम नया कमिट बनाता है, इस तरह एक अंतःक्रियात्मक तरीके से विनाश करता है। अन्य लोगों के बीच, जिन्होंने आपके रेपो का क्लोन बनाया है, लेकिन यह उन सभी में से एक को भी छोड़ देता है, जो अप्रयुक्त हैं (यह मानकर कि आप उन्हें बनाने से पहले अपने कमिट का परीक्षण करते हैं)।

उस कैविएट को ध्यान में रखते हुए, वह टूल जिसे आप खोज रहे हैं यदि वह आपका लक्ष्य है filter-branch। पहला उदाहरण वही करता है जो मैं बता रहा हूँ।


3
git rm का उपयोग करके - लगता है कि न केवल इसे मेरी शाखा को हटा दिया गया है, लेकिन जब मैं किसी अन्य प्रणाली को खींचता हूं तो यह उस सिस्टम पर भौतिक रूप से फ़ाइलों को हटा देता है। किसी भी विचार वहाँ क्या हो रहा है?
बजे

2
उपरोक्त के जवाब में: मेरा मानना ​​है कि मुद्दा यह था कि मेरे पास बदलावों को खींचने से पहले वैकल्पिक प्रणाली पर .gitignore नहीं था, इसलिए हटाए जाने से स्थानीय प्रतिलिपि हटा दी गई। कम से कम यह सिद्धांत है कि
21

53

फ़ाइल को ट्रैक करने से रोकने के लिए, बस उपयोग करें git rm --cached <filename>

लेकिन जैसा कि अन्य लोगों ने यहां बताया है, .itignore में फ़ाइल को जोड़ना आपको गलती से बाद में फिर से जोड़ने से रोक सकता है।


1

gitignore फ़ाइल जोड़ें।

http://git-scm.com/docs/gitignore देखें


13
यह उत्तर का केवल आधा है। .gitignoreप्रविष्टियाँ उन फ़ाइलों पर लागू नहीं होती हैं जिन्हें पहले से ही ट्रैक किया जा रहा है।
सीबी बेली

10
दूसरा भाग है git rm --cached <file>और फिर इस निष्कासन को छोड़ना।
जकुब नारबस्की

1
वर्तमान में .itignore फ़ाइल के अनुसार सभी वर्तमान में ट्रैक की गई फ़ाइलों के पुनर्मूल्यांकन के लिए git के लिए एक साधारण कमांड क्यों नहीं है? ... या यह बहुत अधिक सामान्य ज्ञान है? : पी
अलेक्जेंडर -
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.