এই উত্তরটি প্রাসঙ্গিক বলে মনে হয় যেহেতু ওপি মাল্টি-ওএস সমাধানের প্রয়োজনের জন্য রেফারেন্স তৈরি করে। এই গিথুব নিবন্ধের ক্রস-ওএস-এর শেষের জন্য হ্যান্ডলিংয়ের জন্য উপলব্ধ নিবন্ধের বিশদটি সহায়তা করে details ক্রস-ওএস লাইন শেষগুলি পরিচালনা করার জন্য বিশ্বব্যাপী এবং প্রতি-রেপো পদ্ধতি রয়েছে।
গ্লোবাল অ্যাপ্রোচ
লিনাক্স বা ওএস এক্সে হ্যান্ডলিং গিট লাইন এন্ডিংগুলি কনফিগার করুন:
git config --global core.autocrlf input
উইন্ডোজে গিট লাইন এন্ডিং হ্যান্ডলিং কনফিগার করুন:
git config --global core.autocrlf true
প্রতি-রেপো পদ্ধতি:
আপনার রেপোয়ের মূলে, একটি .gitattributes
ফাইল তৈরি করুন এবং আপনার প্রকল্পের ফাইলগুলির জন্য লাইন শেষের সেটিংস সংজ্ঞায়িত করুন, নিম্নলিখিত বিন্যাসে একসাথে এক লাইন: নীচের একটি path_regex line-ending-settings
যেখানে line-ending-settings
:
- পাঠ
- বাইনারি (ফাইলগুলি যে গিটের জন্য লাইন শেষগুলি সংশোধন করা উচিত নয় - কারণ এটি কিছু চিত্রের ধরণের কারণ যেমন পিএনজি ব্রাউজারে রেন্ডার না করতে পারে)
text
মান কিভাবে ম্যাচিং ফাইলের জন্য লাইন শেষা w শ হ্যান্ডেল করতে উপর গীত নির্দেশ আরও কনফিগার করা যাবে:
text
- ওএস নেটিভ লাইন সমাপ্তিতে লাইনের শেষ পরিবর্তন হয়।
text eol=crlf
- লাইনের শেষটিকে CRLF
চেকআউটে রূপান্তর করে।
text eol=lf
- লাইনের শেষটিকে LF
চেকআউটে রূপান্তর করে।
text=auto
- বোধগম্য ডিফল্ট যা গিটের বিচক্ষণতার সাথে লাইন হ্যান্ডেল ছেড়ে দেয়।
এখানে একটি নমুনা .gitattributes ফাইলের সামগ্রী:
# Set the default behavior for all files.
* text=auto
# Normalized and converts to
# native line endings on checkout.
*.c text
*.h text
# Convert to CRLF line endings on checkout.
*.sln text eol=crlf
# Convert to LF line endings on checkout.
*.sh text eol=lf
# Binary files.
*.png binary
*.jpg binary
আরো কিভাবে লাইন শেষা w শ সেটিংস পরিবর্তন করার পর আপনার রেপো রিফ্রেশ করতে উপর এখানে । Tldr:
গিটের সাথে আপনার ফাইলগুলি ব্যাকআপ করুন, আপনার সংগ্রহস্থলের প্রতিটি ফাইল মুছে দিন (.git ডিরেক্টরি ব্যতীত) এবং তারপরে সমস্ত ফাইল একবারে পুনরুদ্ধার করুন। গিটে আপনার বর্তমান ফাইলগুলি সংরক্ষণ করুন, যাতে আপনার কোনও কাজই হারাতে না পারে।
git add . -u
git commit -m "Saving files before refreshing line endings"
সূচকটি সরান এবং গিটকে কার্যকারী ডিরেক্টরিটি পুনরায় ছাড়তে বাধ্য করুন।
rm .git/index
সমস্ত নতুন লাইন শেষ করতে গিট সূচকটি পুনরায় লিখুন।
git reset
পুনরায় লিখিত, সাধারণ ফাইলগুলি দেখান।
কিছু ক্ষেত্রে, এটি করা দরকার। অন্যদের নিম্নলিখিত অতিরিক্ত পদক্ষেপগুলি পূরণ করার প্রয়োজন হতে পারে:
git status
আপনার সমস্ত পরিবর্তিত ফাইলগুলি আবার যুক্ত করুন এবং সেগুলি প্রতিশ্রুতিবদ্ধ করার জন্য প্রস্তুত করুন। কোন ফাইলগুলি অপরিবর্তিত ছিল তা খতিয়ে দেখার এই সুযোগ।
git add -u
এখানে প্রচুর বার্তাগুলি দেখতে সম্পূর্ণ নিরাপদ যা "সতর্কতা" পড়ে: সিআরএলএফ ফাইলটিতে এলএফ দ্বারা প্রতিস্থাপিত হবে।
.Gitattributes ফাইলটি পুনরায় লিখুন।
git add .gitattributes
আপনার ভাণ্ডারে পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ।
git commit -m "Normalize all the line endings"