पूर्ववत करें mv (नाम बदलें)


139

Git में नाम बदलने का सही तरीका क्या है, जैसे:

git mv file1 file2

21
git mv file2 file1
चीकू का

@ कैन्स्पाइस: यह सही उत्तर है; इसके बारे में कुछ भी चुटीला नहीं है।
सीबी बेली

1
@Charles: तो ठीक है, मैंने इसे एक उचित गैर-चुटीले उत्तर के रूप में प्रदान किया है। :-)
कैनस्पिस

git mv file2 file1 क्या आपको और कुछ की उम्मीद थी?
लक्ष्मण प्रसाद

जवाबों:


230

गैर-चुटीला जवाब:

git mv file2 file1

पुराने और नए दोनों रास्तों के लिए अनुक्रमणिका को स्वचालित रूप से अपडेट करता है।

गिट mv के प्रलेखन की जाँच करें


4
मान लीजिए कि file1 और file2 दोनों वर्तमान निर्देशिका (।) में हैं, तो विकल्प के git checkout .साथ भी काम क्यों नहीं -fहोता है?
रेयनस

9
ऐसा लगता है कि चीजें इस तरह सहज हैं :)
ragerdl

@ryenus आपको उपयोग करने की आवश्यकता है git checkout -- .
जोसेफ 238

जबरदस्त हंसी। यह मजेदार है।
दिमित्री डॉकशिन

मुझे त्रुटि देने के लिए काम नहीं किया:, fatal: source directory is empty,केवल git reset --hardकाम किया।
mac13k

43

यदि आपने अंतिम प्रतिबद्ध होने के बाद से कोई अन्य परिवर्तन नहीं किया है (जो आप रखना चाहते हैं), आप कर सकते हैं

git reset --hard

6
मैं उपयोग करने की आदत में नहीं आना चाहता git reset --hard। बस इसे पीछे की ओर ले जाना मेरे लिए एक सुरक्षित विकल्प लगता है।
osa

4
मेरे लिए काम किया। मैं "git mv" को पूर्ववत करना चाहता था, जो 1) अभी तक प्रतिबद्ध नहीं था, और 2) मेरे पास कोई अन्य पीछा नहीं था
एड का द माउंटेन

यदि आपके पास अन्य परिवर्तन हैं जिन्हें आप रखना चाहते हैं, तो यह उन सभी को नष्ट कर देगा।
user151841

13
git reset HEAD file2

मेरे लिए चाल चली


1
इस मुद्दे के साथ मेरे पास एकमात्र मुद्दा यह है कि यह डिस्क पर फ़ाइल 2 के लिए प्रतियां छोड़ देता है।
205 बजे user52472

9

मेरे मामले में, मैंने एक संपूर्ण फ़ोल्डर ले लिया, तब मुझे एहसास हुआ कि मुझे नहीं होना चाहिए।

मुझे वास्तव में @Dave Konopka का उत्तर पसंद आया, लेकिन मुझे उस दृष्टिकोण (शायद GIT (1.8.4) के मेरे संस्करण) के साथ बहुत अधिक सफलता नहीं मिली! मेरी फाइलें अभी भी नष्ट हो गई हैं। मेरे पास उस स्टैक पर अन्य परिवर्तन थे जो मैं नहीं चाहता था। खोना (दुर्भाग्य से)।

मुझे यह करने में सफलता मिली:

git reset moved_folder
git checkout original_folder

8

यह इस बात पर निर्भर करता है कि आप क्या हासिल करना चाहते हैं। यदि आप चाहते हैं कि यह दिखाई दे जैसे कि फ़ाइल को कभी स्थानांतरित नहीं किया गया था, तो आप इस कदम से पहले वापस (या रिबेस) रीसेट कर सकते हैं। यदि आप इतिहास के बारे में परवाह नहीं करते हैं, तो बस इसे वापस ले जाएं।


4
जब तक आप अपनी प्रतिबद्धता को आगे नहीं बढ़ाते हैं, या कोई व्यक्ति आपकी ओर से नहीं खींचता है, तब तक ठीक काम करता है।
21

7

यदि आपने गलती से बड़ी संख्या में फ़ाइलों का नाम बदल दिया है और आप जहां से शुरू हुए हैं, वहां वापस जाना चाहते हैं, तो कॉल के addsतहत दिखाई देने वाली सभी नामांकित फ़ाइलों को हटा दें git status

एक बार जब आप सभी परिवर्तित फ़ाइलों को हटा देते हैं तो आप git checkout -- *स्थानीय फ़ाइल नामों को स्थानीय रूप से वापस पाने के लिए चला सकते हैं ।


4
git reset HEAD file2
git checkout -- file1
rm file2

पहला कमांड फ़ाइल 2 को अनस्टेज करता है, लेकिन इसकी एक कॉपी चारों ओर छोड़ देता है। दूसरा कमांड मूल फ़ाइल को पुनर्स्थापित करता है और तीसरा नई फ़ाइल को हटा देता है।


1

मैंने जिस ट्रिक का इस्तेमाल किया था, वह मेरे सारे बदलावों (जिसमें mv'd फाइल्स को रिस्टोर करना भी शामिल है) को पूर्ववत करने के लिए एक git stash करना था और फिर git stash ड्रॉप के साथ stash को डिलीट कर दिया।


0

रेपो के शीर्ष स्तर पर जाने और करने के लिए कम डरावना है:

git रीसेट
git चेकआउट।

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