पर प्रतिबिंबित नहीं करते मैं हाल ही में लेखक, committer और अपने स्थानीय प्रतिबद्ध के सभी में उसके ईमेल की जगह, निम्न आदेश का उपयोग कर:"Git फिल्टर शाखा" सफलतापूर्वक committer/लेखक को बदलने के लिए प्रयोग किया जाता है, लेकिन बदलाव GitHub
git filter-branch -f --env-filter '
if [ "$GIT_COMMITTER_NAME" = "oldname" ];
then
GIT_COMMITTER_NAME="newname";
GIT_COMMITTER_EMAIL="newaddr";
GIT_AUTHOR_NAME="newname";
GIT_AUTHOR_EMAIL="newaddr";
fi
if [ "$GIT_AUTHOR_NAME" = "oldname" ];
then
GIT_COMMITTER_NAME="newname";
GIT_COMMITTER_EMAIL="newaddr";
GIT_AUTHOR_NAME="newname";
GIT_AUTHOR_EMAIL="newaddr";
fi
' -- --all
अपडेट तुरंत स्थानीय रूप से स्पष्ट होते हैं (उदाहरण के लिए मेरे स्रोत ट्री पर्यावरण में)। हालांकि, के बाद बल धक्का GitHub करने के लिए संशोधित भंडार ...
git push -f origin master
... दो अलग-अलग आइटम हठ मना उनके committer और लेखक अद्यतन करने के लिए: Gemfile.lock फाइल और एक दृश्य निर्देशिका।
कृपया ध्यान दें कि:
ऐसा दूसरी बार हुआ है कि मैं इस भंडार पर आपरेशन इस तरह का प्रदर्शन कर रहा है। मेरा मानना है कि मुझे पहली बार ऐसे मुद्दों का सामना नहीं करना पड़ा।
भंडार में मेरे पुराने नाम के लिए खोज रहा है ...
$ find . "<oldname">
... परिणाम का एक समूह है, जिसका अर्थ है कि oldname अभी भी भंडार फ़ाइलों के कई में घूमता उपज करता है - फ़ाइलों सहित जो कि गिटहब और स्थानीय स्तर पर अपडेट दिखाई देता है।
मेरा प्रश्न, फिर: मैं गिटहब पर दो "जिद्दी" फ़ाइलों के कमिटर/लेखक को कैसे बदल सकता हूं?
शायद गिटहब इस जानकारी को कैश कर रहा है? रेपो को एक नई शाखा या एक नए रेपो को धक्का देना एक ही समस्या का कारण बनता है? –
जब आप Gemfile.lock और Views कहते हैं, तो आपका क्या मतलब है "उनके कमिटर और लेखक को अपडेट करने से इंकार कर दिया"? केवल काम करने वाले और लेखक हैं, पेड़ और ब्लब्स नहीं। साथ ही, आपके द्वारा चलाए गए फ़िल्टर-शाखा "पुराने नाम" नाम वाली फ़ाइलों के बारे में कुछ भी नहीं करेंगे। साथ ही, यह github यूआरएल पोस्ट करने में मदद कर सकता है। –
संबंधित: [मैं गिट में किसी प्रतिबद्धता के लेखक को कैसे बदलूं?] (Http://stackoverflow.com/q/750172/456814)। –