2011-12-16 13 views
18

मुझे यकीन नहीं है कि इस समस्या के लिए सही शब्द क्या है। असल में, मैं अपने दूरस्थ भंडाररिमोट रिपोजिटरी में फ़ाइलों को कैसे हटाएं?

पर कुछ फ़ाइलों & निर्देशिका हटाने की जरूरत मैं एक स्थानीय Git रेपो GitHub में & दूरस्थ रेपो

  1. अपने आप काम कर रहा था।
  2. एक दोस्त ने एक पुल अनुरोध किया।
  3. मैं उनके अनुरोध (GitHub इंटरफ़ेस के माध्यम से)
  4. मैं परिवर्तन खींच लिया विलय कर दिया।
  5. मैं कोड का परीक्षण किया और उसके परिवर्तन (प्रथम स्थान पर विलय कर दिया है नहीं होना चाहिए)
  6. मैं वापस पिछले एक स्वरूप में वापस लौटा
  7. कुछ परिवर्तन किए
  8. सर्वर से पुश करने लेने के लिए नहीं करने का फैसला।

यह कैसे अपने स्थानीय भंडार इस समय की तरह लग रहा है:

* 7e143b1 (HEAD) 
|\ 
| * 18cea0f (origin/master, origin/HEAD, master) 
| |\ 
| | * fc19ccf 
* | | 6f3c58a 
|// 
* | 8d82486 
|/ 
| * d3ce65f (pre-install-activeadmin) 
|/ 
* 7d0566c 
* d1c77ab 
* 75ba704 
* 30dc67c (heroku/master) 
* f89b1f6 
* ea5e2db 
* 08931d6 
* 9773a6f 
* b636aba 
* cb6f8d4 

मैं 7d0566c करने के लिए अपने स्थानीय रेपो बदल सकते हैं। मुझे यकीन नहीं है कि मेरे रिमोट रेपो पर सिर कहां इंगित कर रहा है।

मैं रिमोट रेपो पर उन फ़ाइलों को कैसे हटा सकता हूं लेकिन मेरे स्थानीय रेपो पर नहीं हैं?

जाहिर है, मैं क्योंकि मैं एक पिछले करने के लिए अपने प्रमुख की एक रीसेट के लिए प्रतिबद्ध किया अपने स्थानीय रेपो में अपनी फ़ाइलों के किसी भी दिखाई नहीं देता। हालांकि, रिमोट रेपो अभी भी अपनी फाइलें दिखाता है। जब मैं प्रतिबद्ध करता हूं, तो यह ठीक काम करता है।

क्या मेरा वर्कफ़्लो गलत है? मुझे पहले पैच का परीक्षण करना चाहिए था। कोई उपाय? मैं संस्करण नियंत्रण के लिए नया हूँ। धन्यवाद

+0

आप के बाद से यह एक नंगे भंडार है एक दूरस्थ जैसे GitHub पर न जोड़ें/निकालें फ़ाइलें। देखें कि क्या गिटब और आपके स्थानीय रेपो के लिए रेफस्पेक्स 'गिट रेव-पार्स हेड' और 'गिट रेव-पार्स मूल/मास्टर' (यदि आपके रिमोट को 'मूल' नाम दिया गया है) निष्पादित करके समान हैं। – fge

+0

मुझे लगता है कि अगर आप 'git log --pretty =" प्रारूप का आउटपुट दिखाते हैं तो यह मदद करेगा:% h% d "--graph --all' और वहां से समझाएं। – htanata

+0

दाएं। आप फ़ाइलों को जोड़/हटा नहीं करते हैं। अहम। वे भिन्न हैं। मुझे इस समस्या को कैसे ठीक करना चाहिए?धन्यवाद – dvliman

उत्तर

37

सर्वर से परिवर्तनों को खींचें, फिर अपने स्थानीय रेपो पर git rm करें, परिवर्तन करें और सर्वर पर धक्का दें। फाइलों को हटा दिया जाएगा।

+0

क्या इन फ़ाइलों को अपने स्थानीय रेपो से हटाने का कोई आसान तरीका है? कहें कि फाइलें हैं? धन्यवाद – dvliman

+0

@limaoit: मैं एक गिट विशेषज्ञ नहीं हूं, इसलिए शायद एक बेहतर तरीका है, लेकिन एक सरल व्यक्ति निर्देशिका को कहीं और कॉपी करना होगा, सर्वर से खींचें ताकि यह अद्यतित हो, फिर सब कुछ हटाएं '.git' को छोड़कर रेपो, अपने बैकअप से अपने रेपो, प्रतिबद्ध, और पुश पर सब कुछ ले जाएं ('.git' को छोड़कर)। – Ryan

+0

आप फ़ाइलों को हटाने के लिए खोल का उपयोग कर सकते हैं। इसका मतलब है कि आप एक शेल स्क्रिप्ट का उपयोग कर सकते हैं, ढूंढ सकते हैं, फाइल ग्लोबिंग कर सकते हैं, या जो भी मास हटाने तकनीक आप चाहते हैं। जब आप पूरा कर लें, तो "गिट एड-ए" चलाएं। शीर्ष स्तर निर्देशिका से। -ए ध्वज आपके द्वारा हटाई गई फ़ाइलों को नोटिस करने के लिए गिट को बताएगा। – wadesworld

1

मैं 18cea0f संभालने कर रहा हूँ वह जगह है जहाँ अपने पुल अनुरोध मर्ज हुआ। आदेश है कि मर्ज वापस लौटने के लिए, आप कर सकते हैं:

git revert -m 1 18cea0f 

आप यहाँ और अधिक पढ़ सकते हैं: http://progit.org/2010/03/02/undoing-merges.html

+1

मैंने यह किया है। मेरा स्थानीय रेपो सफलतापूर्वक वापस कर दिया गया है। वहां कोई समस्या नहीं है। रिमोट रेपो वह है जो समस्या का कारण बनता है। इसमें fc19ccf .etc से फ़ाइलें शामिल हैं ... – dvliman

+0

@limanoit आपको केवल अपने परिवर्तन को दूरस्थ रेपो में धक्का देना होगा: 'गिट पुश मूल मास्टर'। – htanata

+0

@htnata हाँ मैंने ऐसा किया। यही कारण है कि मैंने इस सवाल से पूछा। मेरे स्थानीय रेपो में फ़ाइल ए, बी, सी नहीं है, लेकिन मेरे रिमोट रेपो में फाइल ए, बी, सी है जो पिछले विलय का प्रभाव है। मैंने वास्तव में रेपो को पुनः प्राप्त करके इस समस्या को ठीक किया। फ़ाइल को मैन्युअल रूप से हटाएं। और प्रतिबद्धता धक्का। यह काफी हैकी है। आश्चर्य है कि इस समस्या का बेहतर समाधान है या नहीं। – dvliman

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