গিট এলএফ এর পরিবর্তে সিআরএলএফ


838

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

আমি তখন খালি সংগ্রহস্থল ডিরেক্টরিতে রফতানিটি পেস্ট করেছি এবং এটি করেছি:

git add -A

এরপরে আমি বার্তাগুলির একটি তালিকা পেয়েছিলাম যা বলছিল:

এলএফ সিআরএলএফ দ্বারা প্রতিস্থাপন করা হবে

এই রূপান্তরটির কী কী প্রভাব রয়েছে? এটি ভিজ্যুয়াল স্টুডিওর একটি .NET সমাধান।


14
@ অ্যাফ্যাকার কারণ দুটি ফাইলকে পৃথক করার সময় নিজেকে পরিবর্তন করার চেয়ে লাইন-এন্ডিংগুলি মানক করা কম বিরক্তিকর। (এবং অবশ্যই আপনি যদি একমত না হন তবে আপনি কোর.আউটোক্রল্ফ বৈশিষ্ট্যটি বন্ধ রাখতে পারেন)।
আরজেফালকোনার

2
কেন লাইন শেষা w শ আলাদা হতে হবে, যদি না সমগ্র লাইন স্পর্শ করেছিল
বিয়ন্সের

3
আমি প্রায়শই প্রচুর রেখাগুলি স্পর্শ করি, কারণ আমি বিভিন্ন ধারণা নিয়ে পরীক্ষা-নিরীক্ষা করছি, তারা কীভাবে কাজ করে তা দেখার জন্য ট্রেস স্টেটমেন্ট যুক্ত করে Then আমি তাদের যেভাবে পেয়েছি সেভাবে তাদের পিছনে ফেলেছিল (বা ভেবেছিলাম)।
ম্যাট্রিক্সফ্রোগ

5
@ ম্যাট্রিক্সফ্রোগ: আপনার সম্পাদকটি ভাঙ্গা মনে হচ্ছে, লাইন শেষের স্বয়ংক্রিয় অনুসন্ধান করতে অক্ষম। ইহা কোনটা? আমি হাইব্রিড প্রকল্পগুলিতে কাজ করি যার অবশ্যই কিছু এলএফ ফাইল এবং একই রেপোতে কিছু অন্যান্য সিআরএলএফ ফাইল থাকতে হবে। কোনও আধুনিক সম্পাদকের সমস্যা নেই। সম্পাদকের সীমাবদ্ধতার আশেপাশে কাজ করার জন্য লাইন এন্ডিংয়ের সাথে সংস্করণ নিয়ন্ত্রণ (বা ফাইল স্থানান্তর) জগাখিচুড়ি করা সবচেয়ে খারাপ ধারণা - নীচের ব্যাখ্যাগুলির কেবলমাত্র দৈর্ঘ্য থেকে স্পষ্ট from
মার্চ

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

উত্তর:


954

এই বার্তাগুলি core.autocrlfউইন্ডোজের ভুল ডিফল্ট মানের কারণে ।

এর ধারণাটি autocrlfহ'ল লাইন এন্ডিং রূপান্তরগুলি স্বচ্ছভাবে পরিচালনা করা। এবং এটা!

খারাপ সংবাদ : মানটি ম্যানুয়ালি কনফিগার করা দরকার।
সুসংবাদ : এটি প্রতি গিট ইনস্টল করার জন্য কেবল একবারে করা উচিত (প্রতি প্রকল্প সেটিংও সম্ভব)।

কীভাবে autocrlfকাজ করে :

core.autocrlf=true:      core.autocrlf=input:     core.autocrlf=false:

        repo                     repo                     repo
      ^      V                 ^      V                 ^      V
     /        \               /        \               /        \
crlf->lf    lf->crlf     crlf->lf       \             /          \      
   /            \           /            \           /            \

এখানে crlf= উইন-স্টাইলের সমাপ্তি-লাইন চিহ্নিতকারী, lf= ইউনিক্স-স্টাইল (এবং ম্যাক ওএসএক্স)।

( crউপরের তিনটি বিকল্পের কোনওটির জন্য প্রাক-অক্স প্রভাবিত নয়)

এই সতর্কতা কখন প্রদর্শিত হবে (উইন্ডোজ অধীনে)

    - autocrlf= trueযদি lfআপনার ফাইলগুলির মধ্যে একটিতে ইউনিক্স-শৈলী থাকে (= বিরল),
    - autocrlf= inputযদি আপনার কোনও একটিতে উইন-স্টাইল থাকে crlf(= প্রায় সর্বদা),
    - autocrlf= false- কখনও না!

এই সতর্কতার অর্থ কী

সতর্কতা " এলএফ সিআরএলএফ দ্বারা প্রতিস্থাপন করা হবে " বলে যে আপনি (থাকার autocrlf= true) কমিট-চেকআউট চক্রের পরে আপনার ইউনিক্স-স্টাইলের এলএফ হারাবেন (এটি উইন্ডোজ-স্টাইলের সিআরএলএফ দ্বারা প্রতিস্থাপন করা হবে)। গিট আশা করে না যে আপনি উইন্ডোজের নীচে ইউনিক্স-স্টাইলের এলএফ ব্যবহার করবেন।

সতর্কতা " সিআরএলএফ এলএফ দ্বারা প্রতিস্থাপন করা হবে " বলে যে আপনি (থাকার autocrlf= input) কমিট-চেকআউট চক্রের পরে আপনার উইন্ডোজ-স্টাইলের সিআরএলএফ হারাবেন (এটি ইউনিক্স-স্টাইলের এলএফ দ্বারা প্রতিস্থাপন করা হবে)। inputউইন্ডোজ অধীনে ব্যবহার করবেন না ।

কিভাবে autocrlfকাজ করে তা দেখানোর আরেকটি উপায়

1) true:             x -> LF -> CRLF
2) input:            x -> LF -> LF
3) false:            x -> x -> x

যেখানে এক্স হয় সিআরএলএফ (উইন্ডোজ-স্টাইল) বা এলএফ (ইউনিক্স-স্টাইল) এবং তীরগুলি দাঁড়িয়ে আছে

file to commit -> repository -> checked out file

কিভাবে ঠিক করবো

এর জন্য ডিফল্ট মান core.autocrlfগিট ইনস্টল করার সময় নির্বাচন করা হয় এবং সিস্টেম-প্রশস্ত gitconfig ( %ProgramFiles(x86)%\git\etc\gitconfig) এ সঞ্চিত হয় । এছাড়াও রয়েছে (নিম্নলিখিত ক্রমে ক্যাসকেডিং):

   - "বিশ্বব্যাপী" (ব্যবহারকারী অনুসারে) এ অবস্থিত gitconfig ~/.gitconfig, এখনও অন্য
   - "বিশ্বব্যাপী" (ব্যবহারকারী অনুসারে) এ gitconfig $XDG_CONFIG_HOME/git/configবা $HOME/.config/git/configএবং
   "স্থানীয়" (প্রতি রেপো) gitconfig এ - .git/configকাজ দির।

সুতরাং, git config core.autocrlfবর্তমানে ব্যবহৃত মানটি এবং পরীক্ষা করতে ওয়ার্কিং ডায়ারে লিখুন

   - autocrlf=falseসিস্টেম-প্রশস্ত gitconfig # প্রতি-সিস্টেমের সমাধানে যুক্ত করুন
   - git config --global core.autocrlf false            # প্রতি ব্যবহারকারী সমাধান
   - git config --local core.autocrlf false              # প্রতি-প্রকল্প সমাধান

সতর্কতা
- git configসেটিংস gitattributesসেটিংস দ্বারা ওভাররাইড করা যেতে পারে ।
- crlf -> lfরূপান্তর কেবল তখনই ঘটে যখন নতুন ফাইল যুক্ত হয়, crlfরেপোতে ইতিমধ্যে বিদ্যমান ফাইলগুলি প্রভাবিত হয় না।

নৈতিক (Windows এর জন্য):
    - ব্যবহারের core.autocrlf= trueযদি আপনি (আপনার সম্পাদক / আইডিই UNIX লাইন শেষা w শ ব্যবহার করতে কনফিগার করার এবং অনিচ্ছুক) পাশাপাশি ইউনিক্স অধীনে এই প্রকল্পের ব্যবহারের পরিকল্পনা
    - ব্যবহারের core.autocrlf= falseআপনি শুধুমাত্র (উইন্ডোজ অধীনে এই প্রকল্পের ব্যবহারের পরিকল্পনা অথবা আপনি ইউনিক্স লাইনের সমাপ্তি ব্যবহার করতে আপনার সম্পাদক / আইডিই কনফিগার করেছেন)
    - আপনার কোনও যুক্তিসঙ্গত কারণ না থাকলে কখনও কখনওcore.autocrlf = ব্যবহার করবেন inputনা ( উদাহরণস্বরূপ যদি আপনি উইন্ডোগুলির অধীনে ইউনিক্স ইউটিলিটি ব্যবহার করছেন বা আপনি যদি মেকফাইলে সমস্যাগুলি চালনা করেন),

পিএস উইন্ডোজ জন্য গিট ইনস্টল করার সময় কি চয়ন করবেন?
আপনি যদি ইউনিক্সের অধীনে আপনার কোনও প্রকল্প ব্যবহার না করে থাকেন তবে ডিফল্ট প্রথম বিকল্পের সাথে একমত হন না । তৃতীয়টি চয়ন করুন ( চেকআউট যেমন রয়েছে তেমন প্রতিশ্রুতিবদ্ধ )। আপনি এই বার্তাটি দেখতে পাবেন না। কখনো।

পিপিএস আমার ব্যক্তিগত পছন্দটি ইউনিক্স-স্টাইলের শেষগুলি ব্যবহার করতে সম্পাদক / আইডিই কনফিগার করছে এবং এতে সেট core.autocrlfকরা হচ্ছে false


28
এ পর্যন্ত পেতে আমি যে পরিমাণ সময় ব্যয় করেছি তার জন্য আমি একটি কোর.আরসিএলএফ = র্যাকফ ;-) আশা করছি
পান্ডাওয়ুড

10
আমি বিষয়বস্তুটি পুনর্গঠন করেছি, সম্ভবত এইভাবে পড়া আরও সহজ হবে
অ্যান্টনি হ্যাচকিন্স 21:34

7
দুঃখিত, আমি আশা করি আমার মন্তব্যটি আপনার উত্তরের সমালোচনা হিসাবে নেওয়া হয়নি। এই উত্তরটি খুঁজে পাওয়ার আগে "এর থেকে আরও দূরে যেতে" বলতে চাই।
পান্ডাওয়ুড

10
এটি এত বিভ্রান্তিকর। আমি আমার সম্পাদক এ এলএফ সেট আছে। সমস্ত রেপো কোড এলএফ ব্যবহার করে। গ্লোবাল অটোক্রোল্ফটি মিথ্যাতে সেট করা হয়েছে এবং আমার বাড়ির দির কোর গিটকনফিগটি মিথ্যাতে সেট করা আছে। তবে আমি এখনও বার্তা এলএফ
সিআরএলএফ-এর

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

763

গীটের তিনটি পদ্ধতি রয়েছে কীভাবে এটি লাইন শেষের সাথে আচরণ করে:

$ git config core.autocrlf
# that command will print "true" or "false" or "input"

আপনি একটি অতিরিক্ত প্যারামিটার যোগ করে ব্যবহার মোড সেট করতে পারে trueবা falseউপরে কমান্ড লাইন করতে।

যদি core.autocrlfসত্যে সেট করা থাকে, এর অর্থ হ'ল যে কোনও সময় আপনি গিট রেপোতে কোনও ফাইল যুক্ত করেন যা গিট মনে করে যে এটি একটি পাঠ্য ফাইল, এটি কমিটের মধ্যে সংরক্ষণের আগে এটি সমস্ত সিআরএলএফ লাইনটি কেবল এলএফ-তে পরিণত করবে। আপনি যখনই git checkoutকিছু করেন, সমস্ত পাঠ্য ফাইলের স্বয়ংক্রিয়ভাবে তাদের এলএফ লাইনের শেষগুলি সিআরএলএফ এন্ডিংগুলিতে রূপান্তরিত হয়। এটি এমন প্ল্যাটফর্মগুলি জুড়ে এমন একটি প্রকল্পের বিকাশ করতে দেয় যা খুব শোরগোল না করেই বিভিন্ন লাইন-শেষ শৈলীর ব্যবহার করে কারণ প্রতিটি সম্পাদক লাইন শেষের স্টাইল পরিবর্তন করে কারণ লাইন শেষের স্টাইলটি সর্বদা ধারাবাহিকভাবে LF থাকে।

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

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

আমার ব্যক্তিগত পছন্দটি হ'ল উইন্ডোজ বিকাশকারী হিসাবে সেটিংটি চালু করা।

"ইনপুট" মান অন্তর্ভুক্ত আপডেট হওয়া তথ্যের জন্য http://kernel.org/pub/software/scm/git/docs/git-config.html দেখুন ।


116
এখানে যেমন বলা হয়েছে ( স্ট্যাকওভারফ্লো / প্রশ্নগুলি / ১২৪৯৯৩২/২ ), আমি সম্মান সহকারে একমত নই এবং এই সেটিংটি বন্ধ রাখি (এবং নোটপ্যাড ++ বা অন্য কোনও সম্পাদক ব্যবহার করতে সক্ষম - এবং যেমন আছে তেমন ছেড়ে দেই - যাই হোক না কেন শেষ পংক্তির অক্ষর এটি সন্ধান করে)
ভোনসি

23
আমি এই উত্তরটি পছন্দ করি এবং অটোক্রোল্ফটি সত্যে সেট করতে পছন্দ করি। বিকল্প হিসাবে, সতর্কতা বার্তাগুলি স্বয়ংক্রিয়ভাবে হত্যা করার কোনও উপায় আছে?
ক্রিস্ক

12
core.eolসেটিংসের সাথে তুলনা করে , সম্ভবত .gitattributesকনফিগারেশনের সাথে মিল রেখে এই লিখিত উত্তরটি বাড়িয়ে নেওয়া ভাল লাগবে । আমি পরীক্ষার মাধ্যমে পার্থক্যগুলি ও ওভারল্যাপগুলি বের করার চেষ্টা করেছি এবং এটি খুব বিভ্রান্তিকর।
Seh

5
আরো স্থায়ী সমাধান পরিবর্তনের জন্য আপনার .gitconfig: [কোর] autocrlf = মিথ্যা
RBZ

9
কেবলমাত্র সতর্কবার্তাটি ছড়িয়ে দেওয়ার কোনও সহজ উপায় আছে? আমি এটি সত্য হতে চাই এবং জানি যে আমি এটি সত্যে সেট করেছি। আমাকে সর্বদা সমস্ত সতর্কতাগুলি দেখার দরকার নেই ... এটি ঠিক আছে, সত্যিই ...: p
UmaN

158

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

git config --global core.autocrlf input 

আপনার সাথে সূচীগুলি রিফ্রেশ করা উচিত

git rm --cached -r . 

এবং গিট সূচক দিয়ে আবার লিখুন

git reset --hard

https://help.github.com/articles/dealing-with-line-endings/#refreshing-a-repository-after-changing-line-endings

দ্রষ্টব্য: এটি হ'ল এটি আপনার স্থানীয় পরিবর্তনগুলি সরিয়ে দেবে, আপনি এটি করার আগে সেগুলি স্ট্যাশ করার কথা বিবেচনা করুন।


23
একটি সাধারণ, ক্রস প্ল্যাটফর্ম, কনফিগার অর্থ সম্পর্কে বিশাল আলোচনার পরিবর্তে এটি ঠিক করার জন্য পরিষ্কার উপায়ের জন্য আপনাকে ধন্যবাদ।
এরিস

2
যদি গিট রিসেট হয় - তবে আমার স্থানীয় পরিবর্তনটি কি হারিয়ে যাবে? আমি কেবল উপরের সমস্ত মন্তব্যে অনুসরণ করেছি
ফ্রেডি সিদরুক

5
হ্যাঁ আপনার স্থানীয় পরিবর্তনগুলি হারিয়ে যাবে। --হার্ড প্যারামিটার সূচক এবং কার্যকারী গাছটিকে পুনরায় সেট করে তাই ট্র্যাক করা ফাইলগুলিতে যে কোনও পরিবর্তন বাতিল করা হবে। git-scm.com/docs/git-reset
জ্যাকস

2
এর অর্থ কী git rm --cached -r .? কেন git reset --hardপর্যাপ্ত নয়?
gavenkoa

2
@gavenkoa @max আপনার প্রয়োজন সেটিংটি পরিবর্তন করার পরে git rm --cached -r .যদি করেন তবে এটি লাইন এন্ডিংগুলিকে পুনরায় রূপান্তর করবে না। আপনি গিট সূচক পরিষ্কার করতে হবে। git reset --hardcore.autocrlf
উইসবাকী

79
git config core.autocrlf false

6
এটি সংগ্রহস্থলের মূলের ভিতরে চালানোর বিষয়টি নিশ্চিত করুন
হামাদ খান

23
এটি কীভাবে কার্যকর হতে পারে তা আমি বুঝতে পারি না। অর্ধেক লোকের এটির কাজ করার জন্য অটোক্রোল্ফটি সত্য হওয়া দরকার, বাকি অর্ধেকের এটির জন্য মিথ্যা / ইনপুট হওয়া দরকার। সুতরাং, কি, তারা এলোমেলোভাবে এই ওয়ান-অফ উত্তরগুলি তাদের কনসোলের দেয়ালে ফেলে দেবে যতক্ষণ না কোনও কিছু লাঠি এবং বাছাই করে "কাজ" করে? এটি উত্পাদনশীল নয়।
জোরান পাভলোভিচ

আমি একটি ত্রুটি পেয়েছি "মারাত্মক: গিট ডিরেক্টরিতে নয়"। আমি সি: \ প্রোগ্রাম ফাইলগুলি
it

2
@mbb সেটিং autcrlfথেকে falseশুধু পুন্ট আপনার প্রকল্পের প্রতিটি ব্যবহারকারীকে সমস্যা।
jpaugh

5
@ পিক্সেলউইজ: এই কমান্ডটি কেবলমাত্র প্রকল্পের জন্য সম্পত্তি নির্ধারণ করছে (যাতে এটি চালানোর জন্য আপনার গিটার সংগ্রহস্থলের অধীনে থাকা দরকার)। আপনি যদি বিশ্বব্যাপী এটি সেট করতে চান তবে git config --global core.autocrlf falseপরিবর্তে ব্যবহার করুন।
মিশাল পোলা

48

ইউনিক্সডোডস এবং ডস 2 ইউনিক্স উভয়ই গিটব্যাশ সহ উইন্ডোতে উপলব্ধ। আপনি ইউনিক্স (এলএফ) -> ডস (সিআরএলএফ) রূপান্তর করতে নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন। সুতরাং, আপনি সতর্কতা পাবেন না।

unix2dos filename

অথবা

dos2unix -D filename

তবে, বিদ্যমান যে কোনও সিআরএলএফ ফাইলটিতে এই কমান্ডটি চালাবেন না, তারপরে আপনি প্রতি দ্বিতীয় লাইনে খালি নিউলাইনগুলি পাবেন।

dos2unix -D filenameপ্রতিটি অপারেটিং সিস্টেমের সাথে কাজ করবে না। সামঞ্জস্যের জন্য এই লিঙ্কটি চেক করুন ।

যদি কোনও কারণে আপনাকে কমান্ডটি জোর করতে হয় তবে ব্যবহার করুন --force। যদি এটি অবৈধ বলে থাকে তবে ব্যবহার করুন -f


8
এটার কাজ কি?
সালমান ভন আব্বাস

1
সহায়তা বিকল্পটি যা বলেছে তা এখানে: `--u2d, -D UNIX সম্পাদন করুন -> ডস রূপান্তর`
ল্যারি ব্যাটাল

1
@ রিফাত আমি বিভ্রান্ত আপনার মন্তব্য বলছে যে dos2unix -Dউইন্ডোজ লাইন এন্ডিংগুলি লিনাক্স লাইন এন্ডিংয়ে রূপান্তর করবে। এটি কি ডস (সিআরএলএফ) -> ইউনিক্স (এলএফ) রূপান্তর হিসাবে একই নয়। তবে dos2unix -hরাষ্ট্রগুলি যে -Dইউনিক্স (এলএফ) -> ডস (সিআরএলএফ) রূপান্তর সম্পাদন করবে। ডস 2 ইউনিক্স আরও তথ্য: gopherproxy.meulie.net/sdf.org/0/users/pmyshkin/dos2unix
ল্যারি যুদ্ধ

1
@ ল্যারিবাটল হ্যাঁ, আপনি -ডি সম্পর্কে ঠিক বলেছেন। আসলে, আমি যখন উইন্ডোজ ব্যবহারকারী ছিলাম তখন আমি উত্তরটি পোস্ট করেছিলাম। এবং, আমি এই মন্তব্যটি এক বছরেরও বেশি পরে করেছি যখন আমি একজন ম্যাক ব্যবহারকারী: ডি বিটিডাব্লু, স্পষ্টতার জন্য ধন্যবাদ।
রিফাত

1
এটি আমার পক্ষে কাজ করেছে। আমি সাইগউইন ব্যবহার করছি, যা -D সুইচ সমর্থন করে না বলে মনে হচ্ছে - তবে "ইউনিক্স 2 ডস" কমান্ড রয়েছে যা একই কাজ করে। আমি আশা করি যে সমস্যাটি কী কারণে হয়েছে তা আমি জানতাম - আমার কাছে কোর.আউটোক্রল্ফ = মিথ্যা এবং এটি একটি উইন্ডোজ-কেবলমাত্র সংগ্রহস্থল।
রিচার্ড বিয়ার

27

আমি মনে করি @ বাসিলৌঙ্গাসের উত্তরটি নিকটে তবে পুরানো (অন্তত ম্যাকের)।

~ / .Gitconfig ফাইলটি খুলুন এবং মিথ্যাতে সেট safecrlfকরুন

[core]
       autocrlf = input
       safecrlf = false

এটি * এটি স্পষ্টতই লাইন চরের সমাপ্তি উপেক্ষা করবে (যাইহোক, আমার জন্য কাজ করেছে)।


1
এটি হওয়া উচিত safecrlf(একটি 'চ' সহ)
আল্পেপাগো

21

এই বিষয়ে কথা বলার সময় লাইন শেষের বিষয়ে একটি গিটহাবের নিবন্ধ সাধারণত উল্লেখ করা হয়।

প্রায়শই প্রস্তাবিত core.autocrlfকনফিগার সেটিংটি ব্যবহার করার সাথে আমার ব্যক্তিগত অভিজ্ঞতাটি খুব মিশ্র ছিল।

আমি সাইগউইনের সাথে উইন্ডোজ ব্যবহার করছি, বিভিন্ন সময়ে উইন্ডোজ এবং ইউএনআইএক্স উভয় প্রকল্পের সাথে ডিল করছি। এমনকি আমার উইন্ডোজ প্রকল্পগুলি মাঝে মাঝে bashশেল স্ক্রিপ্ট ব্যবহার করে , যার জন্য ইউনিক্স (এলএফ) লাইন সমাপ্তি প্রয়োজন।

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

মূলত, আমার মতো মিশ্র পরিবেশের core.autocrlfজন্য, বিকল্পগুলির যে কোনওটিতে গ্লোবাল সেট করা কিছু ক্ষেত্রে ভাল কাজ করবে না। এই বিকল্পটি স্থানীয় (সংগ্রহস্থল) গিট কনফিগারেশনে সেট করা যেতে পারে তবে উইন্ডোজ- এবং ইউনিক্স-সম্পর্কিত স্টাফ উভয়ই এমন একটি প্রকল্পের জন্য এটি যথেষ্ট পরিমাণে ভাল হবে না (যেমন আমার কিছু bashইউটিলিটি স্ক্রিপ্ট সহ উইন্ডোজ প্রকল্প আছে )।

আমি খুঁজে পেয়েছি সেরা পছন্দ প্রতি-সংগ্রহস্থল .gitattributes ফাইল তৈরি করা। GitHub নিবন্ধ এটা উল্লেখ করা হয়।
নিবন্ধ থেকে উদাহরণ:

# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto

# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.c text
*.h text

# Declare files that will always have CRLF line endings on checkout.
*.sln text eol=crlf

# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary

আমার প্রকল্পের একটি ভাণ্ডারে:

* text=auto

*.txt         text eol=lf
*.xml         text eol=lf
*.json        text eol=lf
*.properties  text eol=lf
*.conf        text eol=lf

*.awk  text eol=lf
*.sed  text eol=lf
*.sh   text eol=lf

*.png  binary
*.jpg  binary

*.p12  binary

এটি সেট আপ করার জন্য আরও কিছু জিনিস, তবে প্রতি প্রকল্পে একবার করুন এবং এই প্রকল্পের সাথে কাজ করার সময় কোনও ওএসের যে কোনও অবদানকারীকে লাইন শেষের সাথে কোনও ঝামেলা করা উচিত নয়।


এটি এখন চলছে, অন্যান্য বেসিক পাঠ্য ফাইলগুলির মধ্যে সাইগউইন স্ক্রিপ্টগুলির সাথে একটি রেপো পরিচালনা করার চেষ্টা করছে। আপনি কীভাবে কোনও এক্সটেনশন ছাড়াই ফাইলগুলি পরিচালনা করবেন (যেমন "fstab", "sshd_config")? লিঙ্কযুক্ত নিবন্ধটি সেই দৃশ্যের আওতায় নেই।
মাইক লক্স

1
: @MikeLoux এই পদ্ধতি ব্যবহার করে দেখুন stackoverflow.com/a/44806034/4377192
জিন Pavlovsky

আমি দেখতে পেয়েছি যে text=false eol=falseকিছুটা অনুরূপভাবে কাজ করে binary। এটা ঠিক আছে? "আমি জানি এটি টেক্সট ফাইলগুলি, তবে আমি সেগুলি স্বাভাবিক করা চাই না" ইঙ্গিত করা দরকারী হতে পারে
জোয়েটউইডল

18

ভিমে ফাইলটি খুলুন (যেমন :e YOURFILEENTER:), তারপরে

:set noendofline binary
:wq

2
কেবলমাত্র সম্পাদনা vimকরলে সমস্ত লাইন শেষ অক্ষত থাকবে।
চোখ

কিছু কোকোপড ফাইল নিয়ে আমার এই সমস্যা হচ্ছে। উপরোক্ত তাদের বেশিরভাগ স্থির করেছেন; বাকিগুলির জন্য, s / {control-v} {control-m} // কৌশলটি করেছে। দুটি নিয়ন্ত্রণ কোড একসাথে ^ এম তৈরি করে যা ওএস এক্স-এ থাকা আমাদের প্রায়শই উইন্ডোজ ফাইলে দেখা যায়।
janineanne

14

আমারও এই সমস্যা ছিল

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

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

আমি যতদূর দেখতে পাচ্ছি আপনার পছন্দগুলি হ'ল:

  1. Git-SVN ব্যবহার না করেই একটি নতুন Git সংগ্রহস্থলের মধ্যে আপনার কোড পুনরায় আমদানি মানে এই হবে লাইন শেষা w শ ইনিশিয়াল মধ্যে রূপান্তরিত হয় Git কমিট --all
  2. অটোক্রোল্ফটিকে মিথ্যা হিসাবে সেট করুন এবং লাইন শেষ গিটের পছন্দসই শৈলীতে নয় তা এড়িয়ে যান
  3. অটোক্রল্ফ বন্ধ করে আপনার ফাইলগুলি দেখুন, সমস্ত লাইন শেষ ঠিক করুন, সবকিছু আবার ফিরে দেখুন এবং এটিকে আবার চালু করুন।
  4. আপনার ভাণ্ডারের ইতিহাস পুনরায় লিখুন যাতে মূল প্রতিশ্রুতিতে এমন সিআরএলএফ থাকে না যা গিট আশা করে না। (ইতিহাসের পুনর্লিখন সম্পর্কে সাধারণ সতর্কতা প্রযোজ্য)

পাদটীকা: আপনি যদি বিকল্প 2 টি চয়ন করেন তবে আমার অভিজ্ঞতা হ'ল কিছু আনুষঙ্গিক সরঞ্জাম (রিবেস, প্যাচ ইত্যাদি) সিআরএলএফ ফাইলগুলির সাথে লড়াই করে না এবং আপনি শীঘ্রই বা পরে সিআরএলএফ এবং এলএফ (মিশ্রিত লাইন) এর সাথে ফাইলগুলি শেষ করবেন will শেষা w শ)। আমি উভয়ের সেরা পাওয়ার কোনও উপায় জানি না।


2
আমি মনে করি আপনার লিস্টে যোগ করার জন্য চতুর্থ বিকল্প আছে, ধরে নিলে ইতিহাস পুনর্লিখনের পক্ষে কেউ সামর্থ্য অর্জন করবে: আপনি প্রথমে গিট-এসএনএন দিয়ে তৈরি একটি গিট রেপো নিতে পারেন এবং এর ইতিহাসটি পুনরায় লিখতে পারবেন যাতে আর সিআরএলএফ লাইনফিড নেই। এটি আপনাকে আপনার সম্পূর্ণ এসএনএন ইতিহাসের পিছনে প্রসারিত করে লাইনফিডগুলি স্বাভাবিক করবে। ব্যবহারকারী কেও স্ট্যাকওভারফ্লো . com/a/1060828/64257 এ একটি সমাধান উপস্থাপন করে ।
ক্রিস

আপনার পাদটীকা সম্পর্কে: rebaseসিআরএলএফ নিয়ে কোনও সমস্যা নেই। আমার জানা একমাত্র সমস্যাটি হ'ল স্ট্যান্ডার্ড গিট একীভূতকরণের সরঞ্জামটি কেবলমাত্র এলএফ-এর সাথে তার বিবাদ চিহ্নগুলি ("<<<<<<", ">>>>>>" ইত্যাদি) সন্নিবেশ করবে, সুতরাং দ্বন্দ্ব চিহ্নিতকারীগুলির সাথে একটি ফাইল মিশ্র লাইনের শেষ আছে। তবে, আপনি একবার চিহ্নিতকারীগুলি সরিয়ে ফেললে, সবকিছু ঠিক আছে।
স্লেসকে

এটি সম্ভব গিটের পরিচালনা গত 3 বছরে পরিবর্তিত হয়েছে, এটির সাথে এটি আমার প্রত্যক্ষ অভিজ্ঞতা ছিল, যেহেতু আমার এই বিশেষ সমস্যাটি পুনরায় দেখার প্রয়োজন হয়নি need ymmv।
টিম আবেল

1
@ সালস্কে গিট ২.৮ শুরু করার পরে, সংযুক্তি চিহ্নিতকারীরা আর মিশ্র লাইনের সমাপ্তি প্রবর্তন করবে না । দেখুন stackoverflow.com/a/35474954/6309
VonC

@ ভনসি: দুর্দান্ত। আমার উইন্ডোজে যে সময় প্রয়োজন তা জানার জন্য ভাল।
সেলসেকে

11

~ / .Gitattributes ফাইল থেকে নীচে সরিয়ে ফেলা হচ্ছে

* text=auto

প্রথম স্থানে গিটটি লাইন-এন্ডিংগুলি পরীক্ষা করতে বাধা দেবে।


6
ত্রুটিপূর্ণ. সেই লাইনটি যদি উপস্থিত থাকে তবে কোর.আউটোক্রল্ফের কনফিগারেশনটিকে ওভাররাইড করবে । যদি এটি 'সত্য' তে সেট করা থাকে, তবে না, সেই লাইনটি সরিয়ে ফেলা লাইন শেষের পরীক্ষা থেকে গিটকে আটকাবে না।
আরাফ্যাজিওন

1
তবুও, যদি কোর.আউটোক্রল্ফ সেট করা থাকে তবে যদি অটোক্রল্ফটিকে মিথ্যা হিসাবে সেট করা falseসরিয়ে না দেওয়া হয় তবে খুব বেশি উপকার হবে না, সুতরাং এই ব্যক্তিটি আমাকে সাহায্য করেছে (তবে এটি নিজস্ব পর্যায়ে যথেষ্ট নয়)।
ম্যাটি

2
উজ্জীবিত এই !! অংশটি প্রযুক্তিগতভাবে সঠিকভাবে পরীক্ষা করতে "গিটকে আটকাবে", যদিও এটি কেবলমাত্র উত্তর যা নির্দিষ্টভাবে text=সেটিংটির উল্লেখ করেছে .gitattributes(যা উপস্থিত থাকলে, এটি ব্লকার হবে)। সুতরাং অন্য উত্তরগুলি অসম্পূর্ণ। আমি চালু ছিল বাদাম কোন ব্যাপার কতবার আমি আমার পরিবর্তিত চেষ্টা চিত্রে আউট কেন আমার ফাইল দেখা অব্যাহত হিসাবে "পরিবর্তিত" autocrlfএবং safecrlfসেটিংস & চেক আউট & Git ক্যাশে & হার্ড রিসেট সাফ করা হয়েছে।
jdunk

9

এটি পড়া উচিত:

সতর্কতা: ( আপনি যদি এটি পরীক্ষা করে দেখেন / বা আপনার বর্তমান কোর সাথে অন্য কোনও ফোল্ডারে ক্লোন করেছেন .আউটোক্রল্ফ হচ্ছেtrue ,) এলএফ সিআরএলএফ দ্বারা প্রতিস্থাপন করা হবে

আপনার ( বর্তমান ) কার্যকারী ডিরেক্টরিতে ফাইলটির মূল লাইন শেষ থাকবে ।

এই ছবিটির অর্থ কী তা বোঝানো উচিত। এখানে চিত্র বর্ণনা লিখুন


এর অর্থ হ'ল সাবভার্সনে যা প্রেরণ করা হয়েছে তা (যদি আপনি এটি করেন) রূপান্তর হবে।
jpaugh

9

http://www.rtuin.nl/2013/02/how-to-make-git-ignore-different-line-endings/

echo "* -crlf" > .gitattributes 

একটি পৃথক প্রতিশ্রুতিবদ্ধতার সাথে এটি করুন বা গিটটি এখনও একক পরিবর্তন করার সময় পুরো ফাইলগুলি সংশোধিত হিসাবে দেখতে পাবে (আপনি যদি স্বতঃক্রাফ্ট বিকল্পটি পরিবর্তন করেছেন কিনা তার উপর নির্ভর করে)

এই সত্যিই কাজ করে। গিট মিশ্র লাইনের সমাপ্তি প্রকল্পগুলির লাইন এন্ডিংগুলিকে সম্মান করবে এবং তাদের সম্পর্কে আপনাকে সতর্ক করবে না।


2
এটি বিশেষত কার্যকর যখন আপনি সিআরএলএফ এবং এলএফের মধ্যে রূপান্তর করতে চান তবে আপনার কাছে কয়েকটি .sh ফাইল রয়েছে যা অবশ্যই অক্ষত থাকবে। আমি *.sh -crlfসব সময় ব্যবহার করি ...
মার্টিনটাইভার্গা

8

উইন্ডোজ গিট সম্পর্কে আমি খুব বেশি কিছু জানি না, তবে ...

আমার কাছে উপস্থিত হয়েছে যে গিটটি চলমান প্ল্যাটফর্মের (উইন্ডোজ) সাথে মেলে রিটার্ন ফর্ম্যাটকে রূপান্তর করছে। উইন্ডোজে সিআরএলএফ হ'ল ডিফল্ট রিটার্ন ফর্ম্যাট, অন্যদিকে বেশিরভাগ ওএসের জন্য এলএফ ডিফল্ট রিটার্ন ফর্ম্যাট।

সম্ভাবনাগুলি হ'ল, কোডটি অন্য সিস্টেমে সরানো হলে রিটার্ন ফর্ম্যাটটি সঠিকভাবে সমন্বয় করা হবে। আমি মনে করি, গিপিটি এলপিগুলিকে সিআরএলএফ-তে রূপান্তর করার চেষ্টা করার পরিবর্তে বাইনারি ফাইলগুলি অক্ষত রাখতে যথেষ্ট স্মার্ট, বলুন, জেপিইজি।

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

পরিশিষ্ট: সিআর হ'ল ASCII কোড 13, এলএফ ASCII কোড 10 সুতরাং, সিআরএলএফ দুটি বাইট, এবং এলএফ এক।


5
যেহেতু কেউ এটি বলেছে বলে মনে হয় না, সিআর এর অর্থ দাঁড়ায় "ক্যারেজ রিটার্ন" এবং এলএফ মানে "লাইন ফিড"। দ্বিতীয় নোট হিসাবে, অনেক উইন্ডোজ সম্পাদক এলএফ চরিত্রের পরিবর্তে সিআরএলএল অক্ষরের জোড় হওয়ার পরিবর্তে এলএফ চরিত্রের সাহায্যে একটি পাঠ্য ফাইল পরিবর্তন করবেন। সম্পাদকের ব্যবহারকারীকে এমনকি সতর্ক করা হবে না, তবে গিট পরিবর্তনটি দেখবে।
ব্যবহারকারী 2548343

6

আপনি সর্বশেষ গিট ইনস্টল করেছেন তা নিশ্চিত করুন।
আমি উপরের মতো করেছিলাম git config core.autocrlf falseযখন গিট ব্যবহার করা হয়েছিল (সংস্করণ ২. 2..১), তবে এটি কার্যকর হয়নি।
তারপরে এটি এখন কাজ করে যখন গিট আপগ্রেড করবে (2.7.1 থেকে 2.20.1 এ)।


আমি মনে করি আপনি বোঝাতে চেয়েছিলেন ২.১17.১। আমার একই সমস্যা ছিল এবং আপডেটটি হয়েছিল এবং এটি এটিও ঠিক করে দিয়েছে। খুশী আমি তোমার উত্তর দেখেছি!
ফিলিপ ম্যাকমুলেন

4
  1. নোটপ্যাড ++ এ ফাইলটি খুলুন।
  2. সম্পাদনা / ইওএল রূপান্তর এ যান।
  3. উইন্ডোজ ফর্ম্যাটে ক্লিক করুন।
  4. ফাইলটি সংরক্ষণ করুন।

1
git config --global core.autocrlf falseগিটকে প্রতিশ্রুতিবদ্ধভাবে শেষ করে লাইনটি সেট করা থেকে বিরত রাখতে ব্যবহার করার চেষ্টা করুন Unixgit config core.autocrlfএটি সত্য মিথ্যাতে সেট করা আছে তা যাচাই করতে অনুসরণ করুন ।
কনটাঙ্গো

4

ওপির প্রশ্নটি উইন্ডোজ সম্পর্কিত এবং আমি প্রশাসক কাজ না করায় ডিরেক্টরিতে বা নোটপ্যাড ++ এ ফাইল চালানো ছাড়া অন্যকে ব্যবহার করতে পারি না .. সুতরাং এই পথে যেতে হয়েছিল:

C:\Program Files (x86)\Git\etc>git config --global core.autocrlf false

2

অনেক পাঠ্য-সম্পাদক আপনাকে LFনীচে এটম নির্দেশাবলী দেখুন এটিকে পরিবর্তন করতে দেয় । সহজ এবং স্পষ্ট।


CRLFনীচে ডানদিকে ক্লিক করুন:

এখানে চিত্র বর্ণনা লিখুন

LFশীর্ষে ড্রপডাউন নির্বাচন করুন :

এখানে চিত্র বর্ণনা লিখুন


1

একটি জিএনইউ / লিনাক্স শেল প্রম্পটে ডস 2 ইউনিক্স এবং ইউনিক্স 2 ডস কমান্ড আপনাকে এমএস উইন্ডোজ থেকে আসা আপনার ফাইলগুলি সহজেই রূপান্তর / বিন্যাস করতে দেয়


1

দুটি ভিন্ন ওএসে (লিনাক্স এবং উইন্ডোজ) আপনার "কোড" ব্যবহার করার সময় সিআরএলএফ কিছু সমস্যা সৃষ্টি করতে পারে। আমার পাইথন স্ক্রিপ্টটি লিনাক্স ডকার পাত্রে লেখা হয়েছিল এবং তারপরে উইন্ডোজ গিট-ব্যাশ ব্যবহার করে ধাক্কা দেয়। এটি আমাকে হুঁশিয়ারি দিয়েছিল যে এলএফ সিআরএলএফ দ্বারা প্রতিস্থাপন করা হবে। আমি এটি তেমন চিন্তাভাবনা করি না তবে পরে যখন আমি স্ক্রিপ্টটি পরে শুরু করি তখন এটি বলা হয় /usr/bin/env: 'python\r': No such file or directory। এখন এটি আপনার \rজন্য র‌্যামিকেশনের জন্য উইন্ডোজ "সিআর" ব্যবহার করে - ক্যারেজ রিটার্ন - 'line n' এর উপরে নতুন লাইন চরিত্র হিসাবে - \n\r। এটি আপনাকে বিবেচনা করতে হতে পারে এমন কিছু।


0

উইন্ডোজের বেশিরভাগ সরঞ্জাম কেবল পাঠ্য ফাইলগুলিতে কেবল এলএফ গ্রহণ করে। উদাহরণস্বরূপ আপনি নীচের উদাহরণস্বরূপ সামগ্রী (অংশ) সহ '.editorconfig' নামের একটি ফাইলটিতে ভিজ্যুয়াল স্টুডিওর জন্য আচরণটি নিয়ন্ত্রণ করতে পারেন:

 indent_style = space
 indent_size = 2
 end_of_line = lf    <<====
 charset = utf-8

শুধুমাত্র আসল উইন্ডোজ-নোটপ্যাড এলএফ এর সাথে কাজ করে না তবে আরও কিছু উপযুক্ত সাধারণ সম্পাদক সরঞ্জাম উপলব্ধ রয়েছে!

সুতরাং আপনার উইন্ডোজেও পাঠ্য ফাইলগুলিতে এলএফ ব্যবহার করা উচিত। এটি আমার বার্তা, শক্তিশালী সুপারিশ! উইন্ডোতে সিআরএলএফ ব্যবহার করার কোনও কারণ নেই!

(একই আলোচনাটি সি / ++ এর মধ্যে অন্তর্ভুক্ত পাথগুলি ব্যবহার করছে bull এটি বুলশিট, স্ল্যাশ সহ # অন্তর্ভুক্ত <পন্থা / মাইহেডার h> ব্যবহার করুন! এটি সি / ++ স্ট্যান্ডার্ড এবং সমস্ত মাইক্রোসফ্ট সংকলক এটি সমর্থন করে)।

সুতরাং গিট জন্য সঠিক সেটিংস হয়

git config core.autocrlf false

আমার বার্তা: ডস 2 ইউনিক্স এবং ইউনিক্স 2 ডস হিসাবে পুরানো চিন্তাভাবনা প্রোগ্রামগুলি ভুলে যান। আপনার দলে পরিষ্কার করুন যে উইন্ডোজের অধীনে এলএফ ব্যবহার করা উপযুক্ত।

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