2011-09-17 26 views
9

अगर मैं धक्का एक बुरा प्रारंभिक एक दूरस्थ भंडार के लिए प्रतिबद्ध (या एक से अधिक) और बस स्पष्ट यह/यह नष्ट करना चाहते हैं - मैं इसे एक आदेश से कर सकते हैं?Git स्पष्ट दूरस्थ भंडार

यह पूरी तरह से सर्वर से इसे हटाने के लिए महत्वपूर्ण है तो यह डिस्क स्थान का उपयोग नहीं करता।

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

गिट रेपो को निकालना और मेजबान की वेबसाइट (एंबलाला) के माध्यम से इसे फिर से जोड़ना संभव है, लेकिन यह मेरे लिए समाधान की तरह नहीं लगता .. क्या कोई और पेशेवर तरीका है?


अद्यतन:

मैं नीचे इस सवाल का जवाब से सुझाव की कोशिश की, लेकिन यह काम नहीं किया: 'Git धक्का -f' 'Git धक्का --force' 'Git धक्का मूल -f' 'Git मूल --force धक्का ' में हुई:

$ git push --force 
Counting objects: 19, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (19/19), done. 
Writing objects: 100% (19/19), 6.85 KiB, done. 
Total 19 (delta 3), reused 0 (delta 0) 
remote: error: denying non-fast-forward refs/heads/master (you should pull fir 
) 
To [email protected]:xxxxx.git 
! [remote rejected] master -> master (non-fast-forward) 
error: failed to push some refs to '[email protected]:xxxxx.git' 

उत्तर

9

आप git push -f साथ "सही" रेपो धक्का मजबूर कर सकते हैं। मेजबान के आधार पर, ढीली वस्तुओं को साफ हो जाएगा जब git gc भाग गया है। अद्यतन: करने के लिए this आप Assembla में git gc बाध्य नहीं कर सकता अनुसार।

यदि आप उन्हें तुरंत साफ करना चाहते हैं और एंबलाला आपको git gc को मजबूर करने की अनुमति नहीं देता है, तो दूसरा विकल्प रेपो को हटाना और एक नया धक्का देना है।

इसके अलावा, जैसा कि रयान ने टिप्पणियों में कहा था, सभी को यह बताने की ज़रूरत है कि रेपो को क्लोन कर दिया हो, आपने इतिहास को फिर से लिखा है।

+0

+1, लेकिन 1) सुनिश्चित करें कि कचरा संग्रह नियमित रूप से चल रहा है, क्योंकि अनाथ वस्तुओं को तब तक साफ नहीं किया जाएगा जब तक कि वे योग्य नहीं हो जाते, और 2) सुनिश्चित करें कि हर कोई जानता है कि आप इतिहास को फिर से लिख रहे हैं। –

+1

आप, दूरदराज के मास्टर शाखा 'Git धक्का मूल के हटाए जाने के लिए मजबूर कर सकते हैं: master'। कुछ रिमोट रिपोजिटरी कॉन्फ़िगरेशन इस के लिए अनुमति नहीं देंगे। – basicxman

+0

'रिपो को हटाएं' से आपका क्या मतलब है? क्या इसके लिए कोई विशेष आदेश है, या आप इसे असेंबल वेबपृष्ठ के माध्यम से करने का मतलब है? – gisek

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