2011-05-27 14 views
5

में सत्यापित नहीं करें मैंने 50 एमबी फ़ाइल या तो जोड़ा और जी it commit किया।गिट प्रतिबद्ध करने के बाद फ़ाइल को निकालना, इसे मास्टर

git push origin master 

लेकिन बीच में ही मैं कार्रवाई रद्द की:

मैं एक कर रही शुरू।

  1. कैसे मैं रेपो भले ही मैं एक Git प्रतिबद्ध किया से इस फ़ाइल को हटा सकते हैं
  2. मैं कैसे देख सकते हैं फ़ाइल मास्टर में है (मैं इसे अब .gitignore के लिए, लेकिन देर से की अपनी तरह जोड़ा) या नहीं?

मैं पूरी प्रतिबद्धता को मिटा नहीं चाहता क्योंकि अन्य फाइलें मैं चाहता हूं (और खो नहीं)।

उत्तर

2

अच्छा है कि आपने इसे रद्द कर दिया है।

विशाल फ़ाइल को हटाएं।

git add -A 
git commit --amend -C head 
git push origin yourbranch 

आपको ठीक होना चाहिए।

-1

एक और बहुत समान प्रश्न यहाँ कि विकल्पों में से एक नंबर का वर्णन करता है:

Completely remove file from all Git repository commit history

सरल समाधान के git हैं filter-branch आदेश।

+0

फ़िल्टर शाखा वह जो भी करने की कोशिश कर रही है उसके लिए बहुत भारी है। –

0

चरण एक पुश न करें अगर आपने धक्का दिया है, तो कुछ कठोर करने के बाद वापस रिपोर्ट करें।

निर्णय: क्या यह आखिरी प्रतिबद्धता है?

चरण दो - lastcommit: Git प्रतिबद्ध --amend

चरण दो - oldercommit: पढ़ सकते हैं और man git-rebase पेज का पालन बंटवारे के बारे में थोड़ा करता है के लिए

चरण तीन: पढ़ सकते हैं और man git-filter-branch पेज का पालन करें अपनी .git निर्देशिका को संपीड़ित करने के तरीके के बारे में थोड़ा सा। महत्वपूर्ण नहीं है और यह अंततः स्वचालित रूप से हो जाएगा।

चरण चार: वर्तमान रिपो से क्लोन बनाएं ताकि यह जांच सके कि बड़ी फ़ाइल चारों ओर चिपक रही नहीं है। रेपो आकार और फ़ाइल की अनुपस्थिति द्वारा सत्यापित करें।

चरण पांच: पुश

+0

कोई चिल्लाना नहीं, कृपया। –

+0

@adymitruk: गंभीरता से? –

+0

मैं मजाक कर रहा था। लेकिन मैं नीचे वोट पूर्ववत करना भूल गया था। अभी सुधार हुआ –

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