در سیستم عامل های متفاوت، روش های متفاوتی برای مشخص کردن انتهای خطوط وجود دارد. زمانی که از Windows Subsystem for Linux استفاده می کنیم، ممکن است فایل ها را در ویندوز یا لینوکس ایجاد یا ویرایش کنیم. بنابراین ممکن است دچار مشکلاتی بخصوص در استفاده از سورس کنترل گیت بشویم. در این مقاله می آموزیم چگونه Git را تنظیم کنیم تا به صورت خودکار Line Ending را مدیریت کند.

بررسی Line Ending در ویندوز و لینوکس

سیستم عامل ویندوز از دو کاراکتر (“n\”) Line Feed و (“r\”) Carriage Return برای مشخص کردن Line Ending استفاده می کند. بر خلاف ویندوز، در سیستم عامل های مک و لینوکس Line Ending با کاراکتر (“n\”) Line Feed مشخص می شود. پس هنگامی که در دو سیستم عامل متفاوت از گیت استفاده می کنیم یا دو نفر با دو سیستم عامل متفاوت از یک ریپازیتوری گیت استفاده می کنند، ممکن است مشکلاتی ایجاد شود.

حل مشکل Line Ending های متفاوت

برای اینکه این مشکل را حل کنیم، کافی است در ویندوز دستور زیر را وارد کنیم:

git config --global core.autocrlf true

با وارد کردن این دستور، گیت تبدیلات لازم را اعمال می کند. یعنی هنگام check in و check out کردن، گیت به صورت خودکار (“r\”) Carriage Return را حذف و اضافه می کند.

همچنین در لینوکس و مک می توانیم دستور زیر را اجرا کنیم:

git config --global core.autocrlf input

با اجرا این دستور، اگر به هر دلیلی مثلا توسط ویرایشگر متن، (“r\”) Carriage Return به انتهای خطوط اضافه شده باشد، هنگام ذخیره در ریپازیتوری، توسط گیت حذف خواهد شد. طبیعتا لازم نیست هنگام واکشی اطلاعات از ریپازیتوری تغییری اعمال شود پس فقط در هنگام input لازم است این تبدیل انجام شود.

 

مطالعه بیشتر : https://docs.github.com/en/free-pro-team@latest/github/using-git/configuring-git-to-handle-line-endings

همچنین مطالعه کنید : تغییر محل ذخیره سازی ایمیج های Docker Desktop در WSL