github
संवेदनशील डेटा या बड़ी फ़ाइलों को हटाना
खोज…
परिचय
टिप्पणियों
अपने सहयोगियों को बताएं कि आप अपने पुराने (दागी) भंडार इतिहास से हटकर, किसी भी शाखा में विलय न करें। एक मर्ज कमिटमेंट कुछ या सभी दागी इतिहास को फिर से प्रस्तुत कर सकता है जिसे आप सिर्फ शुद्ध करने की परेशानी में गए थे।
कुछ समय बीत जाने के बाद और आप आश्वस्त हैं कि git फ़िल्टर-शाखा का कोई अनपेक्षित दुष्प्रभाव नहीं था, आप अपने स्थानीय भंडार में सभी वस्तुओं को निम्न आदेशों के साथ संग्रहित और कचरा एकत्र करने के लिए बाध्य कर सकते हैं (Git 1.8.5 या नए का उपयोग करके):
git for-each-ref -format = 'delete% (refname)' refs / original | git update-ref --stdin
git reflog expire --expire = now --all
git gc --prune = अब
फ़िल्टर-शाखा का उपयोग करना
git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA' \
--prune-empty --tag-name-filter cat -- --all
यह सुनिश्चित करने के लिए संवेदनशील डेटा के साथ अपनी फ़ाइल को .gitignore में जोड़ें कि आप गलती से इसे फिर से न करें।
echo "YOUR-FILE-WITH-SENSITIVE-DATA" >> .gitignore
git add .gitignore
git commit -m "Add YOUR-FILE-WITH-SENSITIVE-DATA to .gitignore"
GitHub में अपने स्थानीय रेपो को पुश करें
git push origin --force --all
अपने टैग किए गए रिलीज़ से संवेदनशील फ़ाइल को निकालने के लिए, आपको अपने Git टैग के विरुद्ध जोर लगाना होगा:
git push origin --force --tags
BFG रेपो क्लीनर का उपयोग करना
BFG रेपो क्लीनर, git फ़िल्टर-शाखा का एक विकल्प है। इसका उपयोग संवेदनशील डेटा या बड़ी फ़ाइलों को हटाने के लिए किया जा सकता है जो गलत तरीके से किए गए थे जैसे कि स्रोत से संकलित बायनेरिज़। यह स्काला में लिखा गया है।
प्रोजेक्ट वेबसाइट: बीएफजी रेपो क्लीनर
आवश्यकताएँ
जावा रनटाइम एनवायरनमेंट (जावा 7 या उससे ऊपर - BFG v1.12.3 जावा 6 का समर्थन करने के लिए अंतिम संस्करण था)। स्काला लाइब्रेरी और अन्य सभी निर्भरताएँ डाउनलोड करने योग्य जार में बदल जाती हैं।
संवेदनशील डेटा वाली फ़ाइलें निकालें
bfg --delete-files YOUR-FILE-WITH-SENSITIVE-DATA