मैं git से क्लोन किए गए प्रोजेक्ट से संस्करण ट्रैकिंग कैसे निकालूं?


685

मैं किसी प्रोजेक्ट की डायरेक्टरी से सभी वर्जन ट्रैकिंग को हटाना चाहता हूं।

ऐसा करने का सही तरीका क्या है?

क्या मैं एक शेल कमांड कर सकता हूं जैसे:

rm -rf .git

मेरी परियोजनाओं की निर्देशिका से या क्या यह एक Git कमांड के रूप में करने का एक तरीका है?

मैंने इस परियोजना का उपयोग Git को सीखने और महसूस करने के लिए किया कि मैंने इस परियोजना में कुछ गलतियों को जल्दी से स्थानांतरित, पुनर्नामित और हटाए गए फ़ाइलों के साथ किया। मैं सभी Git ट्रैकिंग को निकालना चाहता हूं और नए सिरे से शुरू करना चाहता हूं git init



2
गलतियाँ कितनी बुरी थीं, इस पर निर्भर करते हुए, आप वास्तव में पूरी चीज़ का एक इंटरैक्टिव रीबेस करना चाहते हैं और बस एक टन एक साथ जल्दी स्क्वैश कर सकते हैं, लेकिन अधिक हाल के अच्छे इतिहास को बचा सकते हैं।
कैस्केबेल 21:11

6
विंडोज़ उपयोगकर्ताओं के लिए:rd /s /q .git
सोयोरेना

जवाबों:


686

जानकारी के लिए Git उपयोग करने वाले सभी डेटा में संग्रहीत किया जाता है .git/, इसलिए इसे हटाकर बस ठीक काम करना चाहिए। बेशक, सुनिश्चित करें कि आपकी कामकाजी प्रतिलिपि ठीक उसी स्थिति में है जिसे आप चाहते हैं, क्योंकि बाकी सब कुछ खो जाएगा। .gitफ़ोल्डर छिपा हुआ है इसलिए सुनिश्चित करें कि आप Show hidden files, folders and disksविकल्प चालू करते हैं ।

वहां से, आप git initएक नया भंडार बनाने के लिए दौड़ सकते हैं ।


1
मुझे यकीन है कि मेरे सबफ़ोल्डर्स के पास अपनी छिपी हुई .IT निर्देशिका नहीं है, लेकिन मुझे अभी भी ग्रेफेड आइकन मिलते हैं जब उन फ़ोल्डरों को जीथब पर धकेल दिया जाता है ... क्या कुछ और है जो मैं कोशिश कर सकता हूं?
कोकोडको

1
इसमें .gitconfig भी है, इसलिए आपको इसे भी हटा देना चाहिए।
मैक्सिमिलियन मोर्डिग

विचार करें कि 'code'it rm -r --cached your_folder / मेरा लक्ष्य एक ट्रैक किए गए गिट फ़ोल्डर को दूसरे ट्रैक किए गए गिट फ़ोल्डर के बच्चे के फ़ोल्डर में बदलना था। नए माता-पिता नए बच्चे को तब तक नहीं पहचान पाएंगे, जब तक मैं बच्चे के फ़ोल्डर का कैश नहीं निकाल देता।
रयान ह्युबर्ट ने

419

rm -rf .gitपर्याप्त होना चाहिए। जो Git से संबंधित सभी जानकारियों को उड़ा देगा।


1
यदि आपको cannot unlink Permission deniedविंडोज़ में कुछ मिलता है , तो आप explorerकार्य प्रबंधक में प्रक्रिया को मार सकते हैं , rm -rf .gitउसके बाद फिर से खोल सकते हैं और फिर से खोल सकते हैं। इससे मेरा काम बनता है!
माइकल

10
यदि आप Git Bashखिड़कियों पर हैं, तो यह भी काम करेगा।
वायरल

1
क्या -rfमतलब है?
निलोन

13
-r"पुनरावर्ती" का अर्थ है, इसलिए यह फ़ोल्डर को खाली करने के बजाय फ़ोल्डर की संपूर्ण सामग्री को हटा देगा क्योंकि फ़ोल्डर खाली नहीं है, और -fयह नहीं पूछता है कि क्या आप वाकई सामान हटाने के बारे में निश्चित हैं।
लिली

1
@ Lucky_girl यह आपके चेकआउट से सभी Git राज्य को हटा देगा। कोई शाखा नहीं, कोई इतिहास नहीं, कोई उपाय नहीं, कुछ भी नहीं। उस सामान को .gitडायरेक्टरी में स्टोर किया जाता है । इसके बिना, आप का शाब्दिक अर्थ नहीं है एक अब भंडार है।
लिली बॉलार्ड

96

नीचे दिए गए चरणों के अलावा, आप .gitignore फ़ाइल को भी निकालना चाह सकते हैं।

  • यदि आप अपनी परियोजना में गिट के किसी भी निशान को हटाना चाहते हैं तो .ignignore फ़ाइल को हटाने पर विचार करें।

  • ** यदि आप कभी भी परियोजना में पुनर्जन्म लेना चाहते हैं तो .ignignore फ़ाइल को छोड़ने पर विचार करें।

कुछ रूपरेखाएँ स्वचालित रूप से .gitignore फ़ाइल का उत्पादन कर सकती हैं ताकि आप इसे छोड़ना चाहें।


लिनक्स, मैक, या यूनिक्स आधारित ऑपरेटिंग सिस्टम

एक टर्मिनल खोलें और अपनी परियोजना की निर्देशिका में नेविगेट करें, अर्थात - cd path_to_your_project

यह आदेश चलाएँ:

rm -rf .git*

यह आपके प्रोजेक्ट से Git ट्रैकिंग और मेटाडेटा को हटा देगा। यदि आप मेटाडेटा (जैसे .ignignore और .gitkeep) रखना चाहते हैं, तो आप केवल चलाकर ट्रैकिंग को हटा सकते हैं rm -rf .git


खिड़कियाँ

कमांड प्रॉम्प्ट का उपयोग करना

rmdirया rdआदेश को नष्ट करेगा नहीं / निर्देशिका आपके द्वारा निर्दिष्ट के भीतर किसी भी छिपा फ़ाइलों या फ़ोल्डरों को हटा दें, तो आप का उपयोग करना चाहिए delआदेश सुनिश्चित करें कि सभी फाइलों से निकाल दिए जाते हैं होने के लिए .gitफ़ोल्डर।

  1. कमांड प्रॉम्प्ट खोलें

    1. या तो क्लिक करें Startतो Runया मारा विंडोज कीकुंजी और rएक ही समय में।

    2. टाइप करें cmdऔर एंटर करें

  2. परियोजना निर्देशिका में नेविगेट करें, अर्थात - cd path_to_your_project

  1. इन आदेशों को चलाएँ

    1. del /F /S /Q /A .git

    2. rmdir .git

पहले आदेश सभी फ़ाइलों और फ़ोल्डर को हटा भीतर.git फ़ोल्डर। दूसरा निकालता है.git फ़ोल्डर को ही है।

कोई कमांड प्रॉम्प्ट नहीं

  1. फ़ाइल एक्सप्लोरर खोलें और अपने प्रोजेक्ट पर नेविगेट करें

  2. छिपी हुई फ़ाइलें और फ़ोल्डर्स दिखाएँ - एक दृश्य गाइड के लिए इस लेख को देखें

    1. उपकरण पट्टी पर दृश्य मेनू में, का चयन करें Options

    2. में Advanced Settingsअनुभाग, खोजने के Hidden files and Foldersतहत Files and Foldersसूची और चयनShow hidden files and folders

  3. विकल्प मेनू बंद करें और आपको .gitफ़ोल्डर सहित सभी छिपे हुए फ़ोल्डर और फ़ाइलों को देखना चाहिए ।

    हटाएँ .gitफ़ोल्डर हटाएँ .gitignoreफ़ाइल ** (इस उत्तर के शीर्ष पर टिप्पणी देखें)


1
rmdir .gitकाम नहीं करता है क्योंकि इसके अंतर्गत फ़ोल्डर हैं।
डेल

डेल, के तहत लाइन की जाँच करें rmdir .git। यह बताता है कि उपरोक्त कमांड rmdir .gitका उपयोग .IT फोल्डर के भीतर मौजूद सभी फाइलों और फ़ोल्डरों को हटाने के लिए किया जाता है, इससे पहले कि rmdirकमांड फोल्डर को हटा दे।
मैट सी

1
आप ऐसा भी कर सकते हैं rd /s /q .git, जो फोल्डर और उसमें मौजूद हर चीज को उड़ा देगा
ग्रेग

खिड़कियों के लिए, rmdir /S .gitकाम मिल गया। इसके लिए धन्यवाद।
ईडर लुइस जॉर्ज

70

यह सभी को स्थानांतरित करने के लिए एक चतुर विकल्प नहीं है .git* हाथ से , खासकर जब ये .gitफाइलें मेरी स्थिति की तरह उप-फ़ोल्डर्स में छिपी हुई हैं: जब मैंने संगीतकार + गिट द्वारा कंकाल ज़ेंड 2 स्थापित किया, तो .gitफ़ोल्डर्स और उप में बनाई गई फ़ाइलों की काफी संख्या है फ़ोल्डरों।

मैंने कोशिश की rm -rf .git अपने गिटहब शेल पर , लेकिन शेल -rfनिकालें-आइटम के पैरामीटर को नहीं पहचान सकता है ।

www.montanaflynn.me निम्नलिखित फ़ाइलों को एक बार, सभी फ़ाइलों को हटाने के लिए निम्नलिखित शेल कमांड का परिचय देता है .git! यह वास्तव में काम कर रहा है!

find . | grep "\.git/" | xargs rm -rf

5
"मैंने अपने गिथुब शेल पर 'rm -rf .git' की कोशिश की, लेकिन शेल निकालें-आइटम के पैरामीटर '-rf' को नहीं पहचान सकता।" - ऐसा इसलिए rmहै क्योंकि इसके लिए एक PowerShell उर्फ ​​है remove-item। और -rf* निक्स खोल rmतर्क है। PowerShell के लिए, rm -recursive -forceइसके बजाय का उपयोग करें ।
KFL 6

14
खतरनाक! फ़ाइल नाम के बीच में "git" के साथ या एंथिंग की grep .gitतरह फ़ाइलों का मिलान करेगा legit.gif! कृपया उत्तर निकालें या संपादित करें !!!
पामेट

4
केवल git dirs पर मिलान करने के लिए अपडेट करें: खोजें। | grep "\ .it /"
एंड्रयू

3
अभी भी पर्याप्त सुरक्षित नहीं है: यह उन फाइलों और निर्देशिकाओं को पकड़ लेगा, जो समाप्त होती हैं .git। यह होना चाहिए grep "^\.git/"; इससे भी बेहतर (और तेज़) findआह्वान में नाम से फ़िल्टर करना होगा find . -name .git:।
पवरगान

निम्नलिखित आदेशों पर अमल करें: find -name .git | xargs rm -rfऔर find -name .gitignore | xargs rm -rf
डेवलपर मारियस ėilėnas

14

मैं एक लिनक्स वातावरण के साथ काम कर रहा हूँ। मैंने सभी Git फ़ाइलों और फ़ोल्डरों को पुनरावर्ती तरीके से निकाल दिया:

rm -rf .git

rm -rf .gitkeep

9

Windows वातावरण में आप किसी प्रोजेक्ट की डायरेक्टरी से Git ट्रैकिंग को केवल नीचे टाइप करके हटा सकते हैं।

rd .git /S/Q

7

रूट फ़ोल्डर से चलाएँ

find . | grep .git

मैचों की समीक्षा करें और पुष्टि करें कि इसमें केवल वे फ़ाइलें हैं जिन्हें आप हटाना चाहते हैं और सूट में समायोजित करना चाहते हैं। एक बार संतुष्ट हो जाओ, दौड़ो

find . | grep .git | xargs rm -rf


5

इस समस्या को हल करने का सबसे आसान तरीका कमांड लाइन का उपयोग करना है। यह कमांड टाइप करें rm -R .git/फिर एंटर करें ... या rm -rf .git/एंटर दबाएं ...


2

विंडोज कमांड प्रॉम्प्ट (cmd) उपयोगकर्ता:

आप एकल लाइन कमांड का उपयोग करके स्रोत प्रोजेक्ट फ़ोल्डर के अंदर '.git' को पुन: हटा सकते हैं।

FOR /F "tokens=*" %G IN ('DIR /B /AD /S *.git*') DO RMDIR /S /Q "%G"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.