উইন্ডোজ একটি ফাইল কেস পরিবর্তন?


209

আমাদের গিট-নিয়ন্ত্রিত কোডবেসে বেশ কয়েকটি ফাইল রয়েছে যা আমি নাম পরিবর্তন করতে চাই। বিশেষত, আমি কেবল ফাইলের কেসটি পরিবর্তন করতে চাই, যাতেsourceCode.java হয়ে যায় SourceCode.java, উদাহরণস্বরূপ। ক্যাপচার: আমি একটি উইন্ডোজ বাক্সে আছি এবং ফাইল সিস্টেমটি সেগুলি একই ফাইলের নাম বলে মনে করে।

আমি কীভাবে উইন্ডোজ এবং গিটকে এই পরিবর্তনটি স্বীকৃতি জানাতে এবং এটিকে চেক করতে পারি?


3
গীত 2.0.1+ (জুন 2014) যেহেতু, একটি সহজ git mv(কাজ করা উচিত stackoverflow.com/a/24979063/6309 )। এমনকি উইন্ডোজেও।
ভনসি

উত্তর:


336

এটি কীভাবে করবেন সে সম্পর্কে আরও ইঙ্গিতগুলির জন্য এখানে একবার দেখুন:

ক্ষেত্রে গিট উপেক্ষা পরিবর্তন করতে কিভাবে?

বা:

git mv -f name.java Name.java

8
একদিকে যেমন এটি FAT ফাইল সিস্টেমে কাজ করে না। আমি কিছু প্রজেক্ট কোড চারদিকে থাম্ব ড্রাইভে বহন করি এবং কেস পরিবর্তনগুলি আসল ব্যথা।
asm

1
এটি আমার জন্য এনটিএফএস সিস্টেম এবং উইন্ডোজ 10
রবব্লোব

1
এটি অবশ্যই এটি করার সঠিক উপায় তবে আপনার যদি অনেকগুলি ফাইলের নাম পরিবর্তন করতে হয় তবে এটি ক্লান্তিকর হতে পারে। যদি আপনি ইতিমধ্যে তাদের কোনওভাবে ফাইল সিস্টেমে নাম পরিবর্তন করে নিয়ে এসেছেন এবং আপনি এই পরিবর্তনগুলি করতে চান তবে আপনি কিছু প্যারেন্ট ফোল্ডারের নাম পরিবর্তন করতে পারেন, git addনতুন নামকরণকৃত ফোল্ডারটির একটি করুন, কমিট করবেন না, ফোল্ডারের নামটি কী হওয়া উচিত তা পরিবর্তন করুন to , git addএটি আবার এবং তারপর প্রতিশ্রুতিবদ্ধ।
Okonomiyaki3000

এনটিএফএস এবং উইন্ডোজ on. এ কাজ করে
হান্স গোল্ডম্যান

এটি কি বিপুল পরিমাণে করা সম্ভব? PowerShell সঙ্গে যেমন,Get-ChildItem '.' | Rename-Item {$_.Name.ToLowerCase()}
মূর্তিমান নিরানন্দ

49

আপনি যদি FAT ফাইল সিস্টেমে থাকেন তবে আপনার কেবল দুটি পর্বের পুনর্নামকরণ করা পছন্দ:

  1. নাম পরিবর্তন sourceCode.javaকরুনanything.you.like
  2. নাম পরিবর্তন anything.you.likeকরুনSourceCode.java

যে দিনগুলিতে আমরা পেরফোর্স ব্যবহার করেছি আমাদের ঠিক এই সমস্যাটি ছিল এবং এটিই ছিল কেবলমাত্র আমাদের সমাধান solution


13
অন্যের জন্য কেবল একটি নোট: এটির মধ্যে প্রতিশ্রুতিবদ্ধ হওয়া প্রয়োজন নয়, তবে গিট পরিবর্তন লক্ষ্য করার জন্য সূচীতে যুক্ত করা প্রয়োজন
আরবার্গ

29

নিম্নলিখিত পদক্ষেপগুলি আমাকে উইন্ডোজে কেসটি পরিবর্তন করতে দেয়:

  • যোগ ignorecase = falseকরার জন্য [core].git/config;
  • আপনি যে ফাইলগুলির নাম পরিবর্তন করতে যাচ্ছেন তা আপনার প্রকল্প ডিরেক্টরি থেকে সরিয়ে নিন;
  • সূচকে মুছুন যুক্ত করুন;
  • সমস্ত ফাইলকে তাদের মূল স্থানে ফিরিয়ে আনুন এবং ফাইল এবং / অথবা ডিরেক্টরিগুলির ক্ষেত্রে পরিবর্তন করুন;
  • সমস্ত "নতুন" ফাইল সূচকে যুক্ত করুন;
  • ignorecase = falseপ্রথম পদক্ষেপে যোগ করা সরান ।

এইভাবে আপনার একটি একক প্রতিশ্রুতি রয়েছে যাতে নামটি অন্তর্ভুক্ত থাকে এবং এটি পরিবর্তন করতে সহজ করে তোলে যেমন একটি সম্পূর্ণ ডিরেক্টরি।


5
স্নানের বৈশ্বিক এবং স্থানীয় সেটিংসের জন্য এটি করুন: ti জিটি কনফিগারেশন - গ্লোবাল কোর.গাইনোরকেস মিথ্যা $ জিটি কনফিগারেশন কোর.সাইনরেসেস মিথ্যা
রোমান ইভানভ

6

সতর্ক হোন. এটি করার ফলে এমন পরিবর্তনগুলি হতে পারে যা মার্জ করা অসম্ভব। উইন্ডোতে মার্জ করার সময় গিট বিভ্রান্ত হয়ে পড়ে কারণ এটি সিদ্ধান্ত নিতে পারে না যে পুরানো বড় হাতের নাম এবং নতুন ছোট হাতের নাম একই ফাইল বা না (গিটের জন্য তারা নয় তবে ফাইল সিস্টেমের জন্য)। মার্জ করার জন্য আপনাকে কিছু ম্যানুয়াল কাজ করতে হবে যেমন মার্জ করার আগে ফাইলগুলি মুছতে হবে।

একই নামের ফাইলগুলি সহ পৃথক ক্ষেত্রে গিট রিবেস ইস্যু দেখুন

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


একাধিক প্ল্যাটফর্মের জন্য বিকাশ করার সময় সমস্যা তৈরি হওয়ার কারণে মাঝারি থেকে বড় প্রকল্পগুলিতে অপ্রচলিত নামযুক্ত ফাইলগুলি সর্বদা এড়ানো উচিত (পরে কিছুক্ষণ ঠিক মতো স্থির করতে বিলম্ব করা সমস্যাটিকে আরও মারাত্মক করে তুলবে)। কখনও কখনও আপনি উইন্ডোতে বিকাশ করছেন, তবে একটি লিনাক্স বিল্ডও করা দরকার এবং উইন্ডোতে সূক্ষ্মভাবে কাজ করবে এমন একটি অন্তর্ভুক্তির ফলে বিল্ডটি লিনাক্সকে ভেঙে দেয়।
গ্রিফোর্ক

3

আমার মতে একটি সহজ উপায় অনুপস্থিত। আপনি এটি একটি একক ফাইল, একটি নির্দিষ্ট ডিরেক্টরি বা এমনকি পুরো সংগ্রহস্থলের জন্য করতে পারেন:

git rm --cached <file name or directory>
git add <file name or directory>

আপনি যদি উপ-ডিরেক্টরিগুলিকেও প্রভাবিত করতে চান তবে আপনাকে -rপতাকাটি ব্যবহার করতে হবে :

git rm -r --cached <directory>
git add <directory>

সত্যিই সবচেয়ে সহজ।
রানু

এটি সম্পূর্ণ নতুন ইতিহাস হিসাবে গিট দ্বারা সেট হিসাবে এটি ফাইলের পুরো ইতিহাস হারাবে।
আলেজান্দ্রো

@ আলেজান্দ্রো আপনি যা বলছেন তা ভুল। আমি কেবল এটি পরীক্ষা করেছি এবং গিট কোনও সমস্যা ছাড়াই পুনরায় নামকরণকে স্বীকৃতি দিয়েছে। অন্যান্য ক্ষেত্রে যেমন ফাইলটি সূচকে মুছে ফেলা / নতুন হিসাবে দেখানো হয়েছে, কিন্তু প্রতিশ্রুতি দেওয়ার সময় গিট নোটিশ করেছেন যে সবেমাত্র নামকরণ হয়েছে।
নিলস-ও-মাদুর

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