git with क्या मैं एक गीतम रेपो से शुरुआती कमेटी निकाल सकता हूं?




integrate git bash with visual studio code (2)

वैकल्पिक रूप से आप अपमानजनक फाइलों को निकालने के लिए git filter-branch का उपयोग कर सकते हैं (उदाहरण देखें अनुभाग), लेकिन यह इतिहास पुनः लिख रहा है इसलिए किसी को भी जो अपने पुराने इतिहास के शीर्ष पर आधारित अपने कोड को खराब समझाएगा ...

ऐसा लगता है कि मेरी प्रारंभिक प्रतिबद्धता अंतरिक्ष का 90% तक खा रहा है, क्योंकि गलती से इसमें बहुत सारी मीडिया फ़ाइलों के साथ मिला है क्या स्थानीय और दूरदराज के रेपो से पहले कमिट को हटाने का कोई तरीका है, या मुझे यह एक ही छोड़ देना चाहिए?


ऐसा लगता है कि आपने कई अन्य उपयोगकर्ताओं के साथ पहले ही रिपॉजिटरी साझा की है। यदि यह मामला है, तो आप शायद इसके साथ ही रहना चाहिए।

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

यदि आप इतिहास को फिर से लिखना चाहते हैं तो आप निम्न प्रयास कर सकते हैं। ध्यान दें कि क्योंकि git जहां आपके हेड कमेटी हाल ही में (reflogs) के लॉग के आसपास रहती है, बड़ी ऑब्जेक्ट आपके रिपॉजिटरी, या अन्य रिपॉजिटरी से तुरंत गायब नहीं हो जाएंगे, भले ही आप git gc या git gc --prune प्रयास करें git gc --prune हालांकि यह सुनिश्चित करता है कि मास्टर ब्रांच के इतिहास के हिस्से के रूप में किसी भी नए क्लोन को बड़ी वस्तुएं प्राप्त नहीं करना होगा।

मान लें कि आपकी कामकाजी निर्देशिका 'साफ' है:

# Go back the initial commit
git checkout <SHA1_of_old_root>

# Clean up the index to remove unwanted files, e.g. using git rm <files>
# ...

# Amend the initial commit with the new tree. Note the sha1 of the new commit
git commit --amend

# Go back to the master branch
git checkout master

# Re-apply all the commits onto the new root
git rebase --onto <SHA1_of_new_root> <SHA1_of_old_root>






git