গিটের সাহায্যে, কীভাবে আমি "এলএফ সিআরএলএফ দ্বারা প্রতিস্থাপন করা হবে" সতর্কতাটি বন্ধ করব


153

গিটের সাহায্যে, autocrlf = trueপতাকাটি ব্যবহার করার সময়, লাইন-এন্ডিংগুলি পরিবর্তন করা হলেও এখনও একটি সতর্কতা দেওয়া হয়।

আমি বুঝতে পারি যে সতর্কবার্তাটি কী এবং কীভাবে লাইন-এন্ডিং ফ্ল্যাগটি বন্ধ করা যায় তবে আমি কীভাবে সতর্কতাটি বন্ধ করব?


এখানে সমস্ত উত্তর অপ্রচলিত - গিট গিটটিট্রিবিউট প্রবর্তনের পরে। সাফক্রফ আপনার বন্ধু অটোক্রল্ফ নয়! দয়া করে আমার উত্তর দেখুন
রুশি

উত্তর:


279

আপনি সতর্কতাটি দিয়ে বন্ধ করতে পারেন

git config --global core.safecrlf false

(এটি কেবল ফাংশনটি নয়, কেবল সতর্কবার্তাটি বন্ধ করে দেবে))


সতর্কবার্তাটি বন্ধ করা গিটকে এলএলএফের পরিবর্তে ক্রএলএফ দ্বারা প্রতিহত করবে? @ ক্রোনিয়াল
সহায়

3
@itonsnous from git ডকস : কোর.স্যাফক্রফ যদি "সত্য" বা "সতর্কতা" হিসাবে সেট করা থাকে তবে कोर.আউটোক্রল্ফের বর্তমান সেটিংসের জন্য রূপান্তরটি যদি প্রত্যাবর্তনযোগ্য হয় তবে গিটটি যাচাই করে। "সত্য" এর জন্য, গিট অপরিবর্তনীয় রূপান্তরগুলি প্রত্যাখ্যান করে; "সতর্কতা" এর জন্য, গিট কেবল একটি সতর্কতা প্রিন্ট করে তবে একটি অপরিবর্তনীয় রূপান্তর গ্রহণ করে। যদি আপনার অপরিবর্তনীয় রূপান্তরগুলি প্রত্যাখ্যান করার দরকার না হয় তবে কোর.স্যাফেক্রল্ফকে মিথ্যাতে সেট করা সতর্কতাটি দমন করে তবে অটো রূপান্তর করে।
ড্যানি লিবিন

5

আপনার ব্যবহার করা উচিত core.autocrlf inputএবং core.eol input। অথবা কেবল autocrlf falseগিটকে লাইনের শেষগুলি একেবারে পরিবর্তন করতে দেওয়া উচিত নয় এবং ডিফেসে ক্র্যাফগুলি হাইলাইট করা থেকে মুক্ত করা হবে ইত্যাদি core.whitespace cr-at-eol

আশাকরি এটা সাহায্য করবে


সাধারণত, আপনি চান যে আপনার বিএটি স্ক্রিপ্টগুলি সমাপ্ত হবে এবং সিআরএলএফ, এবং এলএফ সহ আপনার এসএইচ স্ক্রিপ্টটি সমাপ্ত হবে।
স্যান্ডবার্গ

0

আপনি core.whitespaceবিকল্পটি সন্ধান করছেন ( git config --helpবিশদটি দেখুন)।

আপনি এই বিকল্পটি এর মতো সেট করতে পারেন:

$ git config core.whitespace cr-at-eol

0

আমি এইভাবে ব্যবহার করেছি:

গিটে আপনার বর্তমান ফাইলগুলি সংরক্ষণ করুন, যাতে আপনার কোনও কাজই হারাতে না পারে।

git add . -u
git commit -m "Saving files before refreshing line endings"

গিটের সূচক থেকে প্রতিটি ফাইল সরান।

git rm --cached -r .

সমস্ত নতুন লাইন শেষ করতে গিট সূচকটি পুনরায় লিখুন।

git reset --hard

আপনার সমস্ত পরিবর্তিত ফাইলগুলি আবার যুক্ত করুন এবং সেগুলি প্রতিশ্রুতিবদ্ধ করার জন্য প্রস্তুত করুন। কোন ফাইলগুলি অপরিবর্তিত ছিল তা পরীক্ষা করার এটি আপনার সুযোগ।

git add .
# It is perfectly safe to see a lot of messages here that read
# "warning: CRLF will be replaced by LF in file."

আপনার ভাণ্ডারে পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ।

git commit -m "Normalize all the line endings"

https://help.github.com/articles/dealing-with-line-endings/


13
আমি বিশ্বাস করি যে ওপি সেই সতর্কতাগুলি আর দেখতে না পাওয়ার চেষ্টা করেছিল। লাইন শেষের সবগুলি স্বাভাবিক করুন না।
মাইক ক্লক

git rm --cached -r . && git reset --hardকৌশলটি মনে হচ্ছে, ধন্যবাদ
শানিমাল 21

0

যথেষ্ট সুন্দরভাবে, আমি এখানে উভয় কনফিগার প্রয়োগ করেছি যেমন এখানে ব্যাখ্যা করা হয়েছে, এবং আমার .gitconfig ফাইলে এই 2 টি লাইন রয়েছে:

[core]
       autocrlf = false
       whitespace = cr-at-eol

তবুও আমি সতর্কতা পেয়েছি। এখন শুধু চেষ্টা করার জন্য আমি উভয় লাইনই মন্তব্য করেছি এবং সতর্কতাটি আসলে অদৃশ্য হয়ে গেছে। তবে কেন আমি তাদের প্রথম স্থানে রেখেছি তা জানিনা ...


0

"Core.safecrlf মিথ্যা" কাজ করে সেট করা। তবে, আমি মানটি 'সত্য' এ পরিবর্তন করার পরে আউটপুটটি 'সতর্কতা' থেকে 'মারাত্মক' তে পরিবর্তিত হয়েছে যা নীচে দেখানো হয়েছে।

$ git add -A
warning: LF will be replaced by CRLF in .gitignore.
The file will have its original line endings in your working directory

$ git config --global core.safecrlf false

$ git reset

$ git config --global core.safecrlf true

$ git add -A
fatal: LF would be replaced by CRLF in .gitignore

$

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