গিট কি সংবেদনশীল নয়?


98

আমার আংশিক বলা প্রথম প্রতিশ্রুতিতে _Electronicsএটি মূলধন অক্ষর দিয়ে শুরু করে লেখা হয়েছিল, তারপরে আমি এটিকে পরিবর্তন করেছিলাম _electronics

সাইগউইনের অধীনে গিট নতুন নাম প্রকাশের পরে কেসটিকে উপেক্ষা করেছে, তাই আমি লক্ষ্য রেপোটিতে হাত দিয়ে নামটি পরিবর্তন করেছি।

এখন এটা কখনও কখনও commited পরিবর্তন _electronicsআংশিক করার _Electronics

আমি কি ভুল করেছি?


9
আপনি কোন ওএস চালু করছেন?
কিথ থম্পসন

10
আপনি কোন ফাইল সিস্টেম ব্যবহার করছেন?
অ্যান্ড্রু মার্শাল

সাইগউইনের সাথে উইন্ডোজ। আমার সার্ভার উবুন্টু লিনাক্স চালায়। ফাইল সিস্টেমটি জানেন না, আমি অনুমান করি ext3 বা ext2 - আমার সরবরাহকারী সর্বনিম্ন ইনস্টলেশনটি কনফিগার করেছেন।
JAkk

আপনি কি খুশি নন যে উইন্ডোজ কেস-সংবেদনশীল না হওয়ার সিদ্ধান্ত নিয়েছে?
ক্যাসাবেল

4
উইন্ডোজ কেস সংবেদনশীল, তবে কখনও কখনও (আজ প্রায়শই ঘন ঘন) কেস সংরক্ষণ করা হয়
আরাফ্যাজিওন

উত্তর:


74

এটি 2 টি ভিন্ন জিনিস হিসাবে দেখা হবে তবে এটি আপনাকে কেস-সংবেদনশীল সিস্টেমে সমস্যা সৃষ্টি করবে। যদি এটি হয় তবে নিশ্চিত হয়ে নিন যে আপনি কোনও পাথ বা ফাইলের নাম ট্যাব-সমাপ্ত করছেন। কেবলমাত্র কোনও ক্ষেত্রে নাম পরিবর্তন করতে, এটি করুন:

mv file.txt temp.txt
git add -A
git commit -m "renaming..."
mv temp.txt File.txt
git add -A
git commit --amend -m "Renamed file.txt to File.txt"

এটি তাদের প্রতিশ্রুতিবদ্ধ পরিবর্তনগুলি করার, এবং তারপরে কমিটগুলি ভেঙে ফেলার একটি স্পষ্ট উপায়। এটি করার একটি সংক্ষিপ্ত উপায় হ'ল সূচক এবং কার্যকারী ফোল্ডারটি একের মধ্যেই পরিচালনা করা:

git mv file.txt temp.txt
git mv temp.txt File.txt
git commit -m "Renamed file.txt to File.txt"

এটি ডিরেক্টরি নামগুলিও সমন্বিত করতে সম্পর্কিত: গিট এমভি এবং কেবলমাত্র ডিরেক্টরিতে পরিবর্তন করার ক্ষেত্রে


দেখে মনে হচ্ছে এটি ঠিক ছিল (বাদে আমি বড় হাতের অক্ষর থেকে ডাউনচেসে পরিবর্তন করছিলাম)
JAkk

আমি এটিতে উঁকি দিয়েছি, যতক্ষণ আমি সাইগউইন ব্যবহার করি ততক্ষণে সাইগউইন ব্যবহার করা আরও স্বাচ্ছন্দ্যপূর্ণ - ইঙ্গিতটির জন্য ধন্যবাদ
জ্যাক ১৯

আপনি ঠিক করতে পারেন git mv file.txt File.txt। এটি কোনও নতুন গিট বৈশিষ্ট্য কিনা তা নিশ্চিত নয়।
ফিল

108

এটি core.ignorecaseকনফিগারেশন মানের উপর নির্ভর করতে চলেছে , যা কেস-সংবেদনশীল ফাইল-সিস্টেমের ক্ষেত্রে মিথ্যা এবং উইন্ডোজের এমএসসিগিতে সত্য হিসাবে সেট করা আছে।

core.ignorecase

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

ডিফল্টটি মিথ্যা, গিট-ক্লোন (1) বা গিট-থার (1) ব্যতীত প্রোপোজ করা হবে এবং কোরের.গাইনরেকেস সেট করা হবে ঠিক হবে যদি সংগ্রহস্থলটি তৈরি করা হয়।

গিটে ফাইলের নাম পরিবর্তনের মূলধনের এই উত্তরে আরও বিশদ ।


80
এটি সঠিক উত্তর ইমো। ভবিষ্যতে আমার জন্য, git config --unset-all core.ignorecase && git config --system core.ignorecase falsesudo সঙ্গে ব্যবহার করুন।
Znarkus

4
জেমসকে ডিটো, @ জ্নার্কাস ওএস এক্স-এ এই সমস্যার সমাধানটি চিহ্নিত করেছেন, ধন্যবাদ!
ক্রেগ নাকামোটো

4
@ জ্নার্কাস উইন্ডোজেও কাজ করে। সুন্দর।
orlade

9
@ জ্নারকাস, ওএসএক্স-তে এটি করার সমস্যাটি হ'ল আপনি যখন অনুসন্ধানকারীর মাধ্যমে কোনও ফাইলের নাম পরিবর্তন করেন এবং কেবলমাত্র কেসটি পরিবর্তন করেন, গিট নাম পরিবর্তন করা নতুন সংস্করণটিকে সম্পূর্ণ নতুন ফাইল হিসাবে দেখবে, তবে এটি সম্পর্কিত "মুছুন" উত্পন্ন করে না ফাইলটির পুরানো সংস্করণের জন্য ক্রিয়া। সুতরাং যদি আপনি গিথুবকে প্রতিশ্রুতিবদ্ধ হন এবং ধাক্কা দেন, গিথুব-এ পুরানো-নামক এবং নতুন-নামক ফাইল উভয়ই থাকবে তবে আপনার স্থানীয় সিস্টেমে নতুন ফাইলটি থাকবে এবং গিটটি জ্ঞানী হবে না be
আইভানরিজ

4
@ স্পিরালগ্যাংলিয়ন ওএসএক্স-এ ওয়েব ডেভের জন্য আমি সত্যিই কেস সংবেদনশীল পার্টিশন তৈরির প্রস্তাব দিতে পারি এবং তারপরে এটি আপনার www ডিরেক্টরি হিসাবে মাউন্ট করতে পারি।
Znarkus

23

এটি অনেক সহজ:

git mv Electronics electronics -f
git commit -m "That was easy!"

4
আপনি কি কেস সংবেদনশীল ফাইল সিস্টেমে চেষ্টা করে দেখেছেন?
এডওয়ার্ড থমসন

4
আমি প্রাথমিকভাবে এটি পোস্টারটি কোনও ফোল্ডারের নয়, কোনও ফোল্ডারের কেস-পরিবর্তনের নামটি সম্পাদন করার চেষ্টা করে এটি পড়েছিলাম। এখন যখন আমি এটি পুনরায় পড়ি, এটি অস্পষ্ট। আসলে, mv -fএকটি ফাইলের জন্য কাজ করবে।
এডওয়ার্ড থমসন


0

আমার দৃশ্যে আমার দুটি ফোল্ডার ছিল testsএবং Testsএটি গিথুবে দুটি পৃথক ফোল্ডার হিসাবে দেখানো হয়েছিল তবে Testsউইন্ডোজের একটি ফোল্ডার। আমার উদ্দেশ্য ছিল তাদের উভয়কে একত্রিত করা tests

আমি নিম্নলিখিত পদ্ধতিটি ব্যবহার করেছি:

  1. একটি নতুন ফোল্ডার তৈরি করুন temp
  2. থেকে সমস্ত সামগ্রী অনুলিপি Testsকরতেtemp
  3. মুছে ফেলা Tests
  4. এক্সিকিউট git rm Tests -r
  5. নাম পরিবর্তন tempকরুনtests

0

আমি সমস্যাটি সমাধান করার চেষ্টা করেছি এবং এটি উইন্ডোজ 10 এ সফল হয়েছিল

ধরুন, বিটবাকেট টেস্ট এবং টেস্টে দুটি ফোল্ডার রয়েছে তবে আমি যখন ডিস্কে রেপো ক্লোন করি তখন এটি কেবল টেস্ট তৈরি করে এবং আমি গিটটিতে একক ফোল্ডার হিসাবে পরীক্ষা রাখতে চাই যা সমস্ত ফাইল রয়েছে।

কমান্ড লাইন গিট এমভি টেস্ট টেস্ট 1 -f গিট এমভি টেক্সট 1 টেস্ট -f গিট কমিট-এম "নামকরণ ..." গিট পুশে আমাকে নিম্নলিখিত কমান্ডগুলি কার্যকর করতে হবে

এখন আপনি দেখতে পাবেন যে ফোল্ডার স্তরক্রম বিটবাকেটে সংশোধন করা হয়েছে।

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