दूरस्थ रूप से Github रिपॉजिटरी में डायरेक्ट्री का नाम बदलें, स्थानीय लिनक्स Git से?


10

यह मेरा Git भंडार है:

https://github.com/benqzq/ulcwe

यह नाम का एक निर्देशिका है localऔर मैं (से कहते हैं, एक और नाम के लिए इसका नाम बदलना चाहते हैं localकरने के लिए xyz)।

GitHub GUI के माध्यम से इसे मैन्युअल रूप से बदलना एक बुरा सपना है क्योंकि मुझे प्रत्येक फ़ाइल के लिए अलग से निर्देशिका नाम बदलना होगा (GitHub में अभी तक "निर्देशिका का नाम बदलना" कार्यक्षमता शामिल नहीं है, यह विश्वास है या नहीं)।

Git को स्थापित करने के बाद, मैंने इस कमांड की कोशिश की:

git remote https://github.com/benqzq/ulcwe && git mv local xyz && exit

जब मुझे अपने GitHub पासवर्ड के लिए कोई संकेत नहीं मिला, तो मुझे यह त्रुटि मिली:

fatal: Not a git repository (or any parent up to mount point /mnt/c)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

मुझे पता है कि Git में पूरे बिंदु एक प्रोजेक्ट डाउनलोड करने, बदलने, परीक्षण करने और फिर होस्टिंग प्रदाता (इस मामले में GitHub) पर धकेलने के लिए है, लेकिन केवल एक निर्देशिका को बदलने के लिए, मैं एक सीधा ऑपरेशन करना चाहता हूं। क्या यह Git के साथ भी संभव है?

क्या मुझे शायद दूसरे प्रोग्राम का उपयोग करना चाहिए?


2
नहीं, प्रत्यक्ष दूरस्थ संचालन Git में संभव नहीं है। आपको प्रोजेक्ट को क्लोन (डाउनलोड) करना होगा, इसे बदलना होगा, फिर होस्टिंग प्रदाता को वापस धकेलना होगा। लेकिन आप अपने कंप्यूटर पर प्रोजेक्ट के बिना गितुब का उपयोग कैसे कर रहे हैं? क्या आप जीथब वेब यूआई के माध्यम से सभी बदलाव कर रहे हैं - जो बहुत सुविधाजनक या कुशल नहीं है।
user253751

यूआई का उपयोग करने वाले इस विशेष मामले में आमतौर पर मेरे लिए काफी सुविधाजनक और कुशल है, मुख्य बात मुझे याद आती है कि सीधे डीआईआर नाम परिवर्तन है ...
user9303970

जवाबों:


28

घातक त्रुटि संदेश इंगित करता है कि आप कहीं से काम कर रहे हैं जो आपके गिट रिपॉजिटरी का क्लोन नहीं है। तो पहले git रिपॉजिटरी को क्लोन करके शुरू करते हैं:

git clone https://github.com/benqzq/ulcwe.git

फिर इसे दर्ज करें:

cd ulcwe

और निर्देशिका का नाम बदलें:

git mv local xyz

परिवर्तन योग्य होने के लिए, आपको इसे करने की आवश्यकता है:

git commit -m "Rename local to xyz"

अब आप इसे अपने दूरस्थ गिट रिपॉजिटरी में धकेल सकते हैं:

git push

और आप GitHub इंटरफ़ेस में परिवर्तन देखेंगे।


14
दूसरे शब्दों में, यह आपके गिट रिपॉजिटरी में फाइलों पर किसी भी अन्य ऑपरेशन की तरह है।
ऑर्बिट में

2
@LightnessRacesinOrbit पूछने वाला प्रतीत होता है कि अब तक अपने सभी परिवर्तनों के लिए वेब UI का उपयोग कर रहा है।
user253751

5

नहीं, प्रत्यक्ष ऑपरेशन के रूप में इसे करने का कोई तरीका नहीं है क्योंकि जिस तरह से गिट्टी संरचित है।

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

Github, या Bitbucket, या कोई अन्य होस्टिंग प्रदाता अनिवार्य रूप से आपके गिट रिपॉजिटरी की सिर्फ एक और कॉपी है, जिसके शीर्ष पर एक सुंदर वेब इंटरफ़ेस है, जिसे अधिकांश वर्कफ़्लोज़ में सत्य के केंद्रीय स्रोत के रूप में माना जाता है, हालांकि गिट उपयोगिता को यह नहीं पता है।

परिवर्तन को कमिट के रूप में ट्रैक किया जाता है। मैं अनुमान लगा रहा हूं कि direct operationआप बिना कमिट किए फ़ोल्डर के नाम को बदलने का एक तरीका है। हालांकि यह इतिहास के पुनर्लेखन से संभव है, मैं इसकी सिफारिश नहीं करूंगा, खासकर अगर जीआईटी रेपो की प्रतियों के साथ कई लोग / मशीनें हैं, क्योंकि इससे विसंगतियां हो सकती हैं।

गिट रेपो में एक फ़ोल्डर का नाम बदलने का सबसे आसान तरीका इसे स्थानीय स्तर पर क्लोन करना होगा

git clone [url]
cd [git-folder]

यदि आपके पास पहले से ही रेपो की एक स्थानीय प्रति है, तो सुनिश्चित करें कि आप दूरस्थ रेपो तक अद्यतित हैं

git pull

उन परिवर्तनों को करें जिनकी आपको स्थानीय स्तर पर आवश्यकता है

git mv local xyz

जिसे स्वचालित रूप से जीथब द्वारा मचान क्षेत्र में जोड़ा जाना चाहिए। फिर आपको इन परिवर्तनों को प्रतिबद्ध और धक्का देना चाहिए।

git commit -m 'Renamed local to xyz'
git push

यह आपके स्थानीय रिपॉजिटरी में परिवर्तन के लिए प्रतिबद्ध होगा, फिर इन परिवर्तनों को रिपॉजिटरी की रिमोट कॉपी पर धकेलें, इस मामले में, जीथब।


8
नहीं, इतिहास को कमिट्स के बीच परिवर्तन के रूप में संग्रहीत नहीं किया जाता है, प्रत्येक प्रतिबद्ध आत्म-समर्थन है। हर बार जब वे आवश्यक होते हैं, तो अनुरोधों के बीच परिवर्तन पुनः गणना पर आधारित होते हैं।
स्टीफन किट

3
"सभी इतिहास को हर एक स्थान पर डाउनलोड किया जाता है" - साथ नहींgit clone --depth
user11153

2
इसके लिए इतिहास पुनर्लेखन की आवश्यकता नहीं होगी - GitHub बस ऐसा करने के लिए प्रतिबद्ध कर सकता है। (जैसा कि यह पहले से ही वेबसाइट पर फ़ाइलों को सीधे संपादित करते समय करता है।)
user1686

0

GitHub API का उपयोग करके रिपॉजिटरी को क्लोन किए बिना डायरेक्टरी का नाम बदलना संभव है। मैं किसी भी कार्यान्वयन से अनजान हूं।

स्रोत: https://stackoverflow.com/a/31567094/370786

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.