2011-11-08 16 views
12

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

तो मैं "अज्ञात" उपयोगकर्ता द्वारा सभी कामों को हटाने के लिए चलाने के लिए कुछ आदेशों के बारे में सोच रहा था।

उत्तर

13

आपको git filter-branch (अपने रेपो में) का उपयोग करना होगा और जिथब को धक्का देना होगा। मैनुअल से

उदाहरण लगभग एक ही स्थिति है जहाँ आप किसी विशेष उपयोगकर्ता से प्रतिबद्ध निकालना चाहते सौदों कि:

git filter-branch --commit-filter ' 
    if [ "$GIT_AUTHOR_NAME" = "Darl McBribe" ]; 
    then 
      skip_commit "[email protected]"; 
    else 
      git commit-tree "[email protected]"; 
    fi' HEAD 

नोट इस अपने इतिहास को फिर से लिखने और यह अन्य लोगों ने भी अपने repo.Github का उपयोग को प्रभावित कर सकता है कि सहयोगियों के बारे में सलाह:

सहयोगियों

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

http://help.github.com/remove-sensitive-data/

+0

महान ... यह मेरी समस्या .... धन्यवाद एक बहुत हल करती है .. –