আমি একটি ডিরেক্টরিের মূলধন পরিবর্তন করি এবং গিট এটি গ্রহণ করবে বলে মনে হয় না


139

আমি ওএস এক্স সিংহের একটি প্রকল্প বিকাশ করছি যা গিট সংস্করণ নিয়ন্ত্রণে রয়েছে। আমার এই ছোট হাতের ডিরেক্টরিগুলি ছিল এবং পরে সেগুলি মূলধন করে (যেমন ইমেল ঠিকানাগুলি>> ইমেল অ্যাড্রেসস), তবে গিট পরিবর্তনটিকে স্বীকৃতি দেবে বলে মনে হয় না। এটি চালানোর সময় ডিরেক্টরিগুলি লোয়ারকেস বলে মনে করেgit ls-files এবং অন্যান্য কমান্ডগুলি ।

এটি কি নির্দোষ, বা গিটকে এই পরিবর্তনটি গ্রহণ করার জন্য আমার আরও কিছু করা উচিত?



এটি আমার জন্য 2 দিনের জন্য বিভ্রান্তি তৈরি করেছে। এখন আমি এটি পেয়েছি। এই প্রশ্নের জন্য Thnx
945

উত্তর:


199

আপনি সম্ভবত কেস সংবেদনশীল (তবে কেস সংরক্ষণ) এইচএফএস + ব্যবহার করছেন। আমি সাধারণত এ জাতীয় মত কাজ করে:

$ git mv somename tmpname
$ git mv tmpname SomeName

1
এটি আমার কাছে একই সমস্যা, এবং এটিই আমি করি।
ফার্নারফেরেট

3
উইন্ডোজ সরঞ্জামের জন্য গিথুব-তেও একই সমস্যা ছিল। আবার উপরের সমাধানটি ইস্যুটির চারপাশে দুর্দান্তভাবে কাজ করে: উইন্ডোজ এক্সপ্লোরারের একটি অস্থায়ী ফাইলটির নতুন নামকরণ করুন, তারপরে - প্রতিশ্রুতিবদ্ধ হওয়ার পরে - সঠিক কেস সহ চূড়ান্ত নামটির নতুন নামকরণ করুন।
জেসন

9
অথবা এটা মাত্র একটি কমান্ড না: Git এমভি --force somename SomeName (থেকে stackoverflow.com/a/16071375/217866 )
jackocnr

1
পরিবর্তনগুলি রিমোট রেপোতে প্রতিফলিত হওয়ার জন্য আপনারও প্রয়োজন git push origin master। গিট যদি রিমোট আপডেট করতে অস্বীকার করে তবে আপনার একটি ডামি ফাইল যুক্ত করতে হবে (যেমন touch stam) এবং পুশ করতে হবে। পরবর্তীকালে স্ট্যাম মুছুন এবং আবার চাপ দিন push
রাহব 6'18

2
একটি বিষয় লক্ষণীয় হ'ল ফাইলটি কাজ করার জন্য আপনাকে সেই ফোল্ডারে থাকা দরকার। এটি প্রথমে আমার পক্ষে সুস্পষ্ট ছিল না এবং আমি >>> খারাপ উত্স, উত্স = কোনও নাম, গন্তব্য = টিএমপিএন <<< পেতে থাকি কারণ আমি রেপোর গোড়া থেকে কমান্ড চালানোর চেষ্টা করছিলাম।
পার্থ তামানে

280

আপনি গিটকে চালিয়ে কেসের হিসাব নিতে বলতে পারেন

git config core.ignorecase false


4
সত্যিই দুর্দান্ত উত্তর যদি আপনি ইতিমধ্যে গিট এমভি --ফোর্স বা অন্য কোনও সিএল স্ক্রিপ্ট ব্যবহার না করে ফাইলের নাম পরিবর্তন করে রেখেছেন। ধন্যবাদ!
মিনম্যাট

4
এটি সর্বোত্তম উত্তর কারণ আমি বিশেষত 200 জন ফাইলের ম্যানুয়ালি নাম পরিবর্তন করে গিটকে এমভি'র মতো মনে করি নি!
অ্যাডাম রেইস

1
সম্মত হন যে এটি শীর্ষের উত্তর হওয়া উচিত। ধন্যবাদ.
হোমারপ্লাটা

1
কোনও কারণে এটি সমস্ত ফাইলের সদৃশ হয়ে গেছে, এখন আমার কাছে মূল সংস্করণ এবং মূলধনযুক্ত দুটি
হ'ল

1
@ স্যালাটিয়েল আমি অনুমান করি যে আপনি ইতিমধ্যে ফাইলটি যখন সন্ধান করছেন তখন এগুলি তাদের নকল করে।
ইগজি

36

কীভাবে ম্যাক কেস-সংবেদনশীলভাবে এমভি গিট করবেন

এটি ঘটছে কারণ ম্যাক ওএস এক্স কেস সংরক্ষণ এবং কেস সংবেদনশীল বৈশিষ্ট্যগুলি প্রয়োগ করে যা আপনাকে সহায়তা করার উদ্দেশ্যে তৈরি হয়েছে।

যদিও অন্য উত্তরে ডাবল নামকরণের পরামর্শগুলি কাজ করবে, আমি সেরা অনুশীলনের ফলাফলের জন্য '- ফোর্স' ব্যবহারের পরামর্শ দিচ্ছি:

$ git mv --force somename SomeName


দ্রষ্টব্য: আপনি যদি বল প্রয়োগের বিকল্পটি না দিয়ে চেষ্টা করেন তবে গিটটি আপনার পক্ষে এইভাবে বারফ করবে:

$ git mv somename SomeName
$ fatal: destination exists, source=somename, destination=SomeName

উপরের উদাহরণে, গিট কমান্ড ব্যর্থ হয় এবং কোনও ফাইল ফাইল সিস্টেম বা গিটের সূচীতে পরিবর্তন হয় না।


প্রথম কমান্ড পরে, আমি পেতে fatal: not under version control
2540625

মারাত্মক ত্রুটির অর্থ হল সেই স্থানে আপনার কোনও জিআইটি সংগ্রহস্থল নেই। gitকমান্ডগুলি কেবল জিআইটি সংগ্রহস্থল সহ ডিরেক্টরিতে কাজ করে।
ডেভিড ম্যানপারল

তবে আমি আমার গিট রেপোর একটি উপ-ডিরেক্টরিতে ছিলাম ... শেষ পর্যন্ত, আমি এটির উত্তর , বিটিডাব্লু এর মাধ্যমে সমাধান করেছি । ধন্যবাদ।
2540625

19

আপনার .gitconfig ফাইলে গিট কনফিগার বিকল্পটি কোর.সাইনরেসকে মিথ্যাতে পরিবর্তন করার চেষ্টা করুন।


4
বা লিখুনgit config core.ignorecase false
iforgotmypassword

2
@ আইফোরগটমাইপাসওয়ার্ড = আপনার উত্তর দেওয়া উচিত ছিল - আমি আসলে আপনাকে ভোট দিয়ে দিতাম
আবদালি চন্দনওয়ালা

4

নিম্নলিখিত পদক্ষেপগুলি আমাকে সমস্যার সমাধান করতে সহায়তা করেছে:

  1. এতে ফোল্ডারটির নাম পরিবর্তন করুন temp:

    mv Folder temp                  // It will rename your Folder to temp
    
  2. মঞ্চ এবং প্রতিশ্রুতিবদ্ধ:

    git add .
    git commit -m "Temp"
    
  3. tempআপনার পছন্দমতো ফোল্ডারটির নাম পরিবর্তন করুন :

    mv temp folder        // It will rename temp folder to the name of your choice(folder)
    git add .
    git commit -m "Folder Fixed"
    

সম্পন্ন - আপনি এখন ধাক্কা দিতে পারেন।


1

আপনি যদি করেন git mv AAA aaaবা করেন তবে git mv -f AAA aaaএটি কাজ করবে না এবং আপনার ত্রুটি হবেfatal: renaming 'AAA' failed: Invalid argument

কারণ AAAএবং aaaহয় এক একই ফোল্ডারের / কেস-অবশ ফাইল সিস্টেমে ফাইল, পদক্ষেপ AAAকরতে aaaউপায়ে সরানো AAAহিসাবে aaa/AAA

সুতরাং আপনার করা উচিত

git mv AAA aaa.1
git mv aaa.1 aaa

আমি আশা করি এটি আপনার পক্ষে সহায়ক হবে।


1

এর কারণ লিনাক্স-ভিত্তিক ওএস বা ম্যাকোস ফাইল / ফোল্ডারের নামের জন্য সংবেদনশীল কেস উপেক্ষা করে। নীচের পদক্ষেপের দ্বারা আমাদের এই সমস্যাটি সমাধান করা দরকার

For Exp, you want to change folder name from Base to base
1. mv Base base2
2. git add . && git commit -m "Fix folder name problem (wip)"
3. mv base2 base
4. git add . && git commit -m "Fixed folder name problem"

0

এই সমাধানগুলির কোনওোটাই আমার পক্ষে কাজ করেনি। সোর্সট্রি সর্বদা আমার যা চেয়েছিল তার থেকে আলাদা কেস দিয়ে আমার শাখা তৈরি করছিল। সুতরাং আমি কীভাবে এটি সমাধান করেছি:

1 - ফাইন্ডারে আপনার গিট ফাইলগুলি দেখুন। আপনি এটি টার্মিনালে টাইপ করে করতে পারেন:

- `defaults write com.apple.finder AppleShowAllFiles TRUE`
- `killall Finder`

2 - অনুসন্ধানকারীটিকে পুনরায় চালু করুন এবং আপনার প্রকল্প ডিরেক্টরিতে যান

3 - এখন কেবল আপনার ফোল্ডারের নাম পরিবর্তন করুন, আসুন বৈশিষ্ট্য থেকে বৈশিষ্ট্যটিতে বলি। এবং আপনি সেখানে যান।


0

আপনি জিআইটি কমান্ড ব্যবহার না করে নিজেই এটি করতে পারেন। ইনসাইড .gitফোল্ডারের, সহজভাবে আপনি যে নামটি অর্থাত চান ফোল্ডারের মুছতে SomeName। এবং তারপর ফোল্ডারের নাম পরিবর্তন somenameকরতে SomeName। আরও বিশদে এখানে: ফোল্ডারের নামটি বড় হাতের অক্ষরে সেট করা এবং গিটটি লোয়ারকেসে রূপান্তর করতে পারে


0

আমার একই সমস্যা ছিল এবং নীচের সমাধানটি ব্যবহার করুন। আমি এটি ব্যাচ, ডিরেক্টরি এবং ফাইলের নাম ইত্যাদির জন্য ব্যবহার করি:

git rm -r --cached .
git add --all .
git commit -a -m "Versioning updated directory/file names"
git push origin master

এখানে বিস্তারিত হিসাবে।


0

এর মধ্যে আসলে কোনওটিই আমাকে সহায়তা করেনি, আমি এখনও আমার পরিবর্তনগুলি স্থির রাখতে বলি, কারণ আমার পরিস্থিতিটি ছিল আমার স্থানীয় ফোল্ডারটি মূলধন ছিল তবে দূরবর্তীটি ছিল না, এবং আমার শাখাটি পিছনে ছিল এবং ফাইলের মূলধন পার্থক্যের কারণে আমি আর টানতে পারিনি ফোল্ডার কাঠামোতে।

আমি এটির একমাত্র উপায়টি হ'ল আমার স্থানীয় শাখাটি মুছে ফেলা এবং রিমোটটি পরীক্ষা করা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.