එල්එෆ් වෙනුවට සීආර්එල්එෆ් ආදේශ කිරීම


868

වින්ඩෝස් එක්ස්පී යන්ත්‍රයක git ධාවනය කිරීම, bash භාවිතා කරමින්. මම මගේ ව්‍යාපෘතිය SVN වෙතින් අපනයනය කළ අතර පසුව හිස් ගබඩාවක් ක්ලෝන කළෙමි.

මම පසුව අපනයනය හිස් ගබඩාවල නාමාවලියට අලවා,

git add -A

මට පසුව පණිවිඩ ලැයිස්තුවක් ලැබුණි:

එල්එෆ් වෙනුවට සීආර්එල්එෆ් ආදේශ කරනු ඇත

මෙම පරිවර්තනයේ ප්‍රබලතා මොනවාද? මෙය විෂුවල් ස්ටුඩියෝ හි .NET විසඳුමකි.


14
@apphacker නිසා ලිපිගොනු දෙකක් වෙනස් කිරීමේදී ඒවා ඔබම වෙනස් කර ගැනීමට වඩා රේඛීය අවසානයන් ප්‍රමිතිකරණය කිරීම අඩු කරදරයක් වේ. (ඇත්ත වශයෙන්ම, ඔබ එකඟ නොවන්නේ නම්, එවිට ඔබට core.autocrlf විශේෂාංගය අක්‍රිය කළ හැකිය).
RJFalconer

2
සම්පූර්ණ රේඛාව ස්පර්ශ නොකළහොත් රේඛා අවසානය වෙනස් වන්නේ ඇයි
ජෝර්න්

3
මම බොහෝ විට රේඛා රාශියක් ස්පර්ශ කරමි, මන්ද මම විවිධ අදහස් අත්හදා බලමින් සිටිමි, ඒවා ක්‍රියා කරන ආකාරය බැලීමට හෝඩුවාවක් ප්‍රකාශ එකතු කිරීම යනාදිය. එවිට මට අවශ්‍ය වනු ඇත්තේ පේළි දෙකකට හෝ තුනකට පමණක් වෙනසක් කිරීමට සහ අනෙක් ඒවා සම්පූර්ණයෙන්ම නොසලකා හැරීමට ය. මම ඔවුන්ව සොයාගත් ආකාරයටම ඔවුන් ආපසු දමා ඇත (නැතහොත් මම සිතුවෙමි).
MatrixFrog

5
AtMatrixFrog: ඔබේ සංස්කාරකය කැඩී ඇති බවක් පෙනේ, රේඛා අවසානය ස්වයංක්‍රීයව හඳුනාගත නොහැක. එය කුමක්ද? මම දෙමුහුන් ව්‍යාපෘතිවල වැඩ කරන අතර එම ගබඩාවේ LF ගොනු සහ වෙනත් CRLF ගොනු තිබිය යුතුය. කිසිදු නවීන සංස්කාරකයෙකුට ගැටලුවක් නොවේ. සංස්කාරක සීමාවන් ඉක්මවා වැඩ කිරීම සඳහා රේඛා අවසානයන් සමඟ අනුවාද පාලනය (හෝ ගොනු හුවමාරුව) අවුල් කිරීම මෙතෙක් පැවති නරකම අදහසයි - පහත පැහැදිලි කිරීම්වල දිගින් පැහැදිලි වේ.
මාර්ක්

5
ඒ ගැන මා දන්නා එකම නවීන සංස්කාරකය වන්නේ විෂුවල් ස්ටුඩියෝ ය. විෂුවල් ස්ටුඩියෝ සතුටින් එල්එෆ් රේඛා අවසානයක් සහිත ගොනුවක් විවෘත කරනු ඇත. ඔබ නව රේඛා ඇතුළු කළහොත්, එය CRLF ඇතුළු කර මිශ්‍ර රේඛා අවසානයන් සුරකිනු ඇත. මයික්‍රොසොෆ්ට් මෙය නිවැරදි කිරීම ප්‍රතික්ෂේප කරයි, එය වෙනත් ආකාරයකින් හොඳ IDE එකක ඇති විශාල කැළලකි: - (
ජෝන් වට්

Answers:


1020

මෙම පණිවිඩ 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ඔබ Unix ආකාරයේ තිබේ නම් lfඔබේ ගොනු එක් (= කලාතුරකින්) හි,
    - autocrlf= inputඔබ දිනා ආකාරයේ නම් crlfඔබේ ගොනු එක් (= සෑම විටම පාහේ),
    - autocrlf= false- එපා!

මෙම අනතුරු ඇඟවීමේ තේරුම කුමක්ද?

" එල්එෆ් සීආර්එල්එෆ් විසින් ප්‍රතිස්ථාපනය කරනු ඇත " යන අනතුරු ඇඟවීම මඟින් ඔබ ( autocrlf= ඇති විට true) ඔබගේ යුනික්ස් විලාසිතාවේ එල්එෆ් කැපවීම-පිරික්සුම් චක්‍රයෙන් පසු අහිමි වනු ඇත (එය වින්ඩෝස් විලාසිතාවේ සීආර්එල්එෆ් මගින් ප්‍රතිස්ථාපනය වේ). කවුළු යටතේ ඔබ යුනික්ස් විලාසිතාවේ එල්එෆ් භාවිතා කරනු ඇතැයි Git අපේක්ෂා නොකරයි.

" CRLF LF මගින් ප්‍රතිස්ථාපනය වනු ඇත " යන අනතුරු ඇඟවීම මඟින් බැඳීම් පිරික්සුම් චක්‍රයකින් පසු ඔබට (තිබීම autocrlf= input) ඔබේ කවුළු විලාසිතාවේ CRLF අහිමි වනු ඇත (එය යුනික්ස් විලාසිතාවේ LF මගින් ප්‍රතිස්ථාපනය වේ). inputකවුළු යටතේ භාවිතා නොකරන්න .

කෙසේද යන්න පෙන්වීමට තවත් ක්රමයක් autocrlfක්රියා

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

එහිදී x සඳහා CRLF (කවුළු ආකාරයේ) හෝ LF (Unix ආකාරයේ) සහ ඊතල එක්කෝ නැවතුම

file to commit -> repository -> checked out file

නිවැරදි කරන්නේ කෙසේද

සඳහා පෙරනිමි අගය core.autocrlf(GIT ස්ථාපනය සඳහා තෝරා සහ පද්ධති පුරා gitconfig තුළ ගබඩා කර ඇත %ProgramFiles(x86)%\git\etc\gitconfig.) එසේම (පහත දැක්වෙන අනුපිළිවෙලෙහි කඳුරැල්ල):

   - "ගෝලීය" (එක්-පරිශීලකයා) පිහිටා gitconfig ~/.gitconfig, තවත්
   - "ගෝලීය" (එක්-පරිශීලකයා) gitconfig දී $XDG_CONFIG_HOME/git/configහෝ $HOME/.config/git/configසහ
   - "දේශීය" (එක්-repo) දී 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දැනටමත් ගබඩාවේ පවතින ගොනු වලට බලපෑමක් නැත.

සදාචාරය (වින්ඩෝස් සඳහා):
    - භාවිතා කරන්න core.autocrlf= trueඔබ මෙම ව්‍යාපෘතිය යුනික්ස් යටතේ භාවිතා කිරීමට අදහස් කරන්නේ නම් (සහ යුනික්ස් රේඛා අවසානය භාවිතා කිරීම සඳහා ඔබේ සංස්කාරක / අයිඩීඊ වින්‍යාස කිරීමට අකමැති නම් ),
    - භාවිතා කරන්න core.autocrlf= falseඔබ මෙම ව්‍යාපෘතිය වින්ඩෝස් යටතේ පමණක් භාවිතා කිරීමට අදහස් කරන්නේ නම් ( හෝ, ඔබ විසින් කර්තෘ / IDE unix මාර්ගය අවසානය භාවිතා කිරීමට) වින්යාසගත කර
    - කවදාවත් භාවිතා core.autocrlf= inputඔබ (හොඳ හේතුවක් ඇති නම් උදා: ඔබ කවුළු යටතේ හෝ ඔබ makefiles කරුණු සම්බන්ධයෙන් ක්රියාත්මක නම් unix උපයෝගිතා භාවිතා කරන්නේ නම්),

PS වින්ඩෝස් සඳහා git ස්ථාපනය කිරීමේදී තෝරාගත යුත්තේ කුමක්ද?
ඔබ යුනික්ස් යටතේ ඔබේ කිසිදු ව්‍යාපෘතියක් භාවිතා නොකරන්නේ නම්, සුපුරුදු පළමු විකල්පය සමඟ එකඟ නොවන්න . තුන්වැන්න තෝරන්න (පවතින ආකාරයටම පරීක්ෂා කරන්න, පවතින ආකාරයටම කරන්න ). ඔබට මෙම පණිවිඩය නොපෙනේ. කවදා හෝ.

පීපීඑස් මගේ පුද්ගලික මනාපය වන්නේ යුනික්ස් විලාසිතාවේ අවසානය භාවිතා කිරීම සඳහා සංස්කාරක / අයිඩීඊ වින්‍යාස කිරීම සහ සැකසීම core.autocrlffalse.


35
මම මෙතරම් දුරක් යාමට ගත කළ කාලය සඳහා, මම බලාපොරොත්තු වූයේ core.crlf = rackoff ;-)
PandaWood

10
මම අන්තර්ගතය ප්‍රතිව්‍යුහගත කළෙමි, සමහර විට මේ ආකාරයෙන් කියවීම පහසු වනු ඇත
ඇන්ටනි හැච්කින්ස්

7
කණගාටුයි, මගේ අදහස ඔබේ පිළිතුර විවේචනය කිරීමක් ලෙස නොසැලකේ. "මෙතරම් දුරක් යාමට" මම අදහස් කළේ, මෙම පිළිතුර සොයා ගැනීමට පෙර.
PandaWood

10
මෙය එතරම් ව්‍යාකූල ය. මගේ සංස්කාරකයේ LF කට්ටලයක් ඇත. සියලුම repo කේතය LF භාවිතා කරයි. ගෝලීය ස්වයංක්‍රීය යතුරු පුවරුව අසත්‍ය ලෙස සකසා ඇති අතර මගේ නිවසේ ඇති මූලික ගිට්කොන්ෆිග් අසත්‍යයට සකසා ඇත. නමුත් මට තවමත් පණිවුඩය ලැබෙන්නේ එල්එෆ් වෙනුවට
සීආර්එල්එෆ්

19
යුනික්ස් විලාසිතාවේ අවසානය භාවිතා කිරීම සඳහා ඔබ ඔබේ සංස්කාරකය වින්‍යාස කර ඇත්නම්, core.autocrlfආදානයට සකසා නොගන්නේ මන්ද ? ඔබගේ පිළිතුරෙන් මා රැස් කරගත් දෙයින්, එය ආදානය ලෙස සැකසීමෙන් නිධිය සහ වැඩ කරන නාමාවලිය සැමවිටම යුනික්ස් විලාසිතාවේ රේඛා අවසානයක් ඇති බව සහතික කරයි. වින්ඩෝස් හි ඔබට එය කිසි විටෙකත් අවශ්‍ය නොවන්නේ ඇයි ?
හබ්රෝ

773

රේඛීය අවසානයට සලකන ආකාරය පිළිබඳ ක්‍රම තුනක් Git සතුව ඇත:

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

ඉහත විධාන රේඛාවේ අතිරේක පරාමිතියක් trueහෝ එකතු කිරීමෙන් ඔබට භාවිතා කිරීමට ප්‍රකාරය සැකසිය හැකිය false.

core.autocrlfසත්‍ය ලෙස සකසා ඇත්නම් , එයින් අදහස් වන්නේ ඔබ git පෙළ ගොනුවක් යැයි සිතන git repo වෙත ගොනුවක් එක් කරන ඕනෑම වේලාවක, එය බැඳීම තුළ ගබඩා කිරීමට පෙර එය සියලු CRLF රේඛා අවසානයන් LF බවට හරවන බවයි. ඔබ git checkoutයමක් කළ විට, සියලුම පෙළ ලිපිගොනු ස්වයංක්‍රීයව ඒවායේ LF රේඛා අවසානය CRLF අවසානය බවට පරිවර්තනය වේ. මෙය ඉතා y ෝෂාකාරී නොවී විවිධ රේඛා-අවසන් මෝස්තර භාවිතා කරන වේදිකා හරහා ව්‍යාපෘතියක් සංවර්ධනය කිරීමට ඉඩ සලසයි.

මෙම පහසු පරිවර්තනයේ අතුරු ආබාධය සහ ඔබ දකින අනතුරු ඇඟවීම මෙයයි, ඔබ විසින් රචිත පෙළ ගොනුවක මුලින් සීආර්එල්එෆ් වෙනුවට එල්එෆ් අවසානයක් තිබුනේ නම්, එය සුපුරුදු පරිදි එල්එෆ් සමඟ ගබඩා වනු ඇත, නමුත් පරීක්ෂා කළ විට පසුව එය සී.ආර්.එල්.එෆ්. සාමාන්‍ය පෙළ ගොනු සඳහා මෙය සාමාන්‍යයෙන් හොඳයි. මෙම අවස්ථාවෙහිදී අනතුරු ඇඟවීම “ඔබේ තොරතුරු සඳහා” වේ, නමුත් git ද්විමය ගොනුවක් පෙළ ගොනුවක් ලෙස වැරදියට තක්සේරු කළහොත් එය වැදගත් අනතුරු ඇඟවීමකි, මන්ද git එවිට ඔබේ ද්විමය ගොනුව දූෂිත වනු ඇත.

core.autocrlfඅසත්‍ය ලෙස සකසා ඇත්නම් , රේඛා-අවසන් පරිවර්තනයක් කිසි විටෙකත් සිදු නොකෙරේ, එබැවින් පෙළ ලිපිගොනු පරික්ෂා කර ඇත. ඔබේ සියලු සංවර්ධකයින් ලිනක්ස් හෝ වින්ඩෝස් හි සිටින තාක් කල් මෙය සාමාන්‍යයෙන් ක්‍රියාත්මක වේ. නමුත් මගේ අත්දැකීම් අනුව මම තවමත් පෙළ රේඛා මිශ්‍ර රේඛා අවසානය සමඟ ගැටලු ඇති කරයි.

මගේ පුද්ගලික මනාපය වන්නේ වින්ඩෝස් සංවර්ධකයෙකු ලෙස සැකසුම සක්‍රිය කර තැබීමයි.

"ආදාන" අගය ඇතුළත් යාවත්කාලීන තොරතුරු සඳහා http://kernel.org/pub/software/scm/git/docs/git-config.html බලන්න .


117
මෙහි පවසා ඇති පරිදි ( stackoverflow.com/questions/1249932/… ), මම ගෞරවනීය ලෙස එකඟ නොවී එම සැකසුම අක්‍රිය කර තබමි (සහ නොට්පෑඩ් ++ හෝ වෙනත් ඕනෑම සංස්කාරකවරයකු සමඟ ගනුදෙනු කළ හැකි - සහ එය අතහැර යන්න - ඕනෑම අවසන් රේඛා චරිතයක් එය සොයා ගනී)
VonC

23
මම මෙම පිළිතුරට කැමතියි, ස්වයංක්‍රීයව සත්‍ය ලෙස සැකසීමට කැමැත්තෙමි. විකල්පයක් ලෙස, අනතුරු ඇඟවීමේ පණිවිඩ ස්වයංක්‍රීයව විනාශ කිරීමට ක්‍රමයක් තිබේද?
Krisc

12
මෙම හොඳින් ලියා ඇති පිළිතුර core.eolසැකසීම් හා සැසඳීමෙන් වැඩි දියුණු කිරීම සතුටක් වනු ඇත .gitattributes. අත්හදා බැලීම් තුළින් වෙනස්කම් සහ අතිච්ඡාදනයන් හඳුනා ගැනීමට මම උත්සාහ කර ඇති අතර එය ඉතා ව්‍යාකූල ය.
සෙහ්

5
වඩාත් ස්ථිර විසඳුමක් සඳහා ඔබේ .gitconfig පහත පරිදි වෙනස් කරන්න: [core] autocrlf = false
RBZ

10
අනතුරු ඇඟවීම මැඩපැවැත්වීමට පහසු ක්‍රමයක් තිබේද? මට එය සත්‍ය වීමට අවශ්‍ය අතර මම එය සත්‍ය බවට පත් කර ඇති බව දැන ගන්න. මට සෑම අනතුරු ඇඟවීමක්ම නිතරම දැකීමට අවශ්‍ය නැත ... එය හරි, ඇත්තෙන්ම ...: p
උමාන්

184

ඔබ දැනටමත් කේතය පරීක්ෂා කර ඇත්නම්, ගොනු දැනටමත් සුචිගත කර ඇත. ඔබගේ git සැකසුම් වෙනස් කිරීමෙන් පසු, ධාවනය කිරීමෙන් කියන්න:

git config --global core.autocrlf input 

ඔබ සමඟ දර්ශක නැවුම් කළ යුතුය

git rm --cached -r . 

සහ git දර්ශකය සමඟ නැවත ලියන්න

git reset --hard

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

සටහන: මෙය ඔබගේ දේශීය වෙනස්කම් ඉවත් කරනු ඇත, ඔබ මෙය කිරීමට පෙර ඒවා ගබඩා කිරීම සලකා බලන්න.


28
වින්‍යාස අර්ථය පිළිබඳ විශාල සාකච්ඡාවකට වඩා සරල, හරස් වේදිකාවක්, එය නිවැරදි කිරීමට පැහැදිලි ක්‍රමයක් සඳහා ස්තූතියි.
ඊරිස්

2
git reset --hard නම් මගේ දේශීය වෙනස නැති වී යා හැකිද? මම ඉහත අදහස් දැක්වීම් සියල්ලම අනුගමනය කරමි
ෆ්‍රෙඩී සිදාරුක්

5
ඔව් ඔබේ දේශීය වෙනස්කම් නැති වී යයි. --Hhard පරාමිතිය දර්ශකය සහ වැඩ කරන ගස නැවත සකසයි, එවිට ලුහුබැඳ ඇති ලිපිගොනු වල ඕනෑම වෙනස්කමක් ඉවතලනු ඇත. git-scm.com/docs/git-reset
ජැක්

2
එහි තේරුම git rm --cached -r .කුමක්ද? git reset --hardප්‍රමාණවත් නොවන්නේ ඇයි ?
gavenkoa

2
@gavenkoa @max ඔබට අවශ්‍ය වන්නේ සැකසුම වෙනස් කිරීමෙන් පසු git rm --cached -r .ඔබ කරන්නේ නම් , එය රේඛා අවසානය නැවත පරිවර්තනය නොකරනු ඇත. ඔබ git දර්ශකය පිරිසිදු කළ යුතුය. git reset --hardcore.autocrlf
wisbucky

80
git config core.autocrlf false

6
මෙම තුළ ගබඩාව මූල ක්රියාත්මක කිරීමට වග බලා ගන්න
Hammad ඛාන්

25
මෙය ප්‍රයෝජනවත් වන්නේ කෙසේදැයි මට තේරෙන්නේ නැත. අඩක් මිනිසුන්ට ස්වයංක්‍රීයව වැඩ කිරීම සඳහා එය සත්‍ය විය යුතු අතර අනෙක් භාගය එය ව්‍යාජ / ආදානය විය යුතුය. ඉතින්, කුමක් හෝ, යම් දෙයක් ඇලී “වැඩ” වන තුරු අහඹු ලෙස මෙම පිළිතුරු ඔවුන්ගේ කොන්සෝලය බිත්තියට විසි කළ යුතුද? මෙය .ලදායී නොවේ.
සෝරන් පැව්ලොවික්

මට දෝෂයක් ඇතිවිය "මාරාන්තික: git නාමාවලියක නොවේ". මම C: \ Program Files \ Git සහ C: \ Program Files \ Git \ bin
pixelwiz

2
@mbb සැකසීම autcrlfසඳහා falseඔබගේ ව්යාපෘතිය සෑම පරිශීලක මෙම ප්රශ්නය හුදෙක් punts.
jpaugh

5
ixpixelwiz: මෙම විධානය මඟින් දේපල සැකසෙන්නේ ව්‍යාපෘතිය සඳහා පමණි (එබැවින් එය ක්‍රියාත්මක කිරීම සඳහා ඔබ git ගබඩාවක් යටතේ සිටිය යුතුය). ඔබට මෙය ගෝලීයව සැකසීමට අවශ්‍ය නම් git config --global core.autocrlf falseඒ වෙනුවට භාවිතා කරන්න.
මයිකල් පොල්ලා

48

යුනික්ස් 2 ඩොස් සහ ඩොස් 2 යුනික්ස් යන දෙකම වින්ඩෝස් වල gitbash සමඟ ලබා ගත හැකිය. යුනික්ස් (එල්එෆ්) -> ඩොස් (සීආර්එල්එෆ්) පරිවර්තනය සිදු කිරීම සඳහා ඔබට පහත විධානය භාවිතා කළ හැකිය. එබැවින් ඔබට අනතුරු ඇඟවීම නොලැබෙනු ඇත.

unix2dos filename

හෝ

dos2unix -D filename

නමුත්, දැනට පවතින කිසිදු CRLF ගොනුවක මෙම විධානය ක්‍රියාත්මක නොකරන්න, එවිට ඔබට සෑම දෙවන පේළියකම හිස් නව රේඛා ලැබෙනු ඇත.

dos2unix -D filenameසෑම මෙහෙයුම් පද්ධතියක් සමඟම ක්‍රියා නොකරනු ඇත. අනුකූලතාව සඳහා කරුණාකර මෙම සබැඳිය පරීක්ෂා කරන්න .

කිසියම් හේතුවක් නිසා ඔබට විධානය බල කිරීමට අවශ්‍ය නම් භාවිතා කරන්න --force. එය අවලංගු යැයි කියන්නේ නම් භාවිතා කරන්න -f.


8
එය කරන්නේ කුමක්ද?
සල්මාන් වොන් අබ්බාස්

1
උදව් විකල්පය පවසන දේ මෙන්න: `--u2d, -D යුනික්ස් -> ඩොස් පරිවර්තනය සිදු කරන්න`
ලැරී සටන

1
If රිෆාට් මම ව්‍යාකූලයි. ඔබේ අදහස පවසන්නේ එය dos2unix -Dවින්ඩෝස් රේඛා අවසානය ලිනක්ස් රේඛා අවසානය බවට පරිවර්තනය කරන බවයි. එය ඩොස් (සීආර්එල්එෆ්) -> යුනික්ස් (එල්එෆ්) පරිවර්තනයට සමාන නොවේ ද? කෙසේ වෙතත් යුනික්ස් (එල්එෆ්) -> ඩොස් (සීආර්එල්එෆ්) පරිවර්තනය සිදු කරන dos2unix -hරාජ්‍යයන් -D. dos2unix වැඩි විස්තර: gopherproxy.meulie.net/sdf.org/0/users/pmyshkin/dos2unix
ලැරී සටන

1
ArLarryBattle ඔව්, ඔබ -D ගැන හරි. ඇත්තටම, මම කවුළු භාවිතා කරන්නෙකු ලෙස සිටියදී පිළිතුර පළ කළෙමි. තවද, මම මැක් පරිශීලකයෙකු වන විට වසරකට වඩා වැඩි කාලයක් අදහස් දැක්වුවෙමි: ඩී බීටීඩබ්ලිව්, පැහැදිලි කිරීම සඳහා ස්තූතියි.
රිෆත්

1
මෙය මට වැඩ කළා. මම සිග්වින් භාවිතා කරමි, එය -D ස්විචයට සහය නොදක්වයි - නමුත් “යුනික්ස් 2 ඩොස්” විධානය ඇත, එය එකම දේ කරයි. කෙසේ වෙතත් ගැටළුවට හේතුව කුමක්දැයි මා දැන සිටියා නම් හොඳයි - මට core.autocrlf = අසත්‍යයක් ඇති අතර එය වින්ඩෝස් පමණක් ගබඩාවකි.
රිචඩ් බියර්

29

මම හිතන්නේ @ බැසිලූංගස්ගේ පිළිතුර කිට්ටු නමුත් යල්පැන ඇති (අවම වශයෙන් මැක්හි).

~ / .Gitconfig ගොනුව විවෘත safecrlfකර අසත්‍ය ලෙස සකසන්න

[core]
       autocrlf = input
       safecrlf = false

එමඟින් * පේළි වර්‍ගයේ අවසානය නොසලකා හැරීමට ඉඩ ඇත (මා වෙනුවෙන් වැඩ කර ඇත, කෙසේ වෙතත්).


1
එය විය යුතුය safecrlf('f' සමඟ)
ඇල්පිපෙගෝ

22

මෙම මාතෘකාව ගැන කතා කිරීමේදී රේඛීය අවසානයන් පිළිබඳ GitHub හි ලිපියක් පොදුවේ සඳහන් වේ.

බොහෝ විට නිර්දේශිත core.autocrlfවින්‍යාස සැකසුම භාවිතා කිරීම පිළිබඳ මගේ පෞද්ගලික අත්දැකීම් ඉතා මිශ්‍ර විය.

මම වින්ඩෝස් සිග්වින් සමඟ භාවිතා කරමි, වින්ඩෝස් සහ යුනික්ස් ව්‍යාපෘති දෙකම විවිධ වේලාවන් සමඟ ගනුදෙනු කරමි. මගේ වින්ඩෝස් ව්‍යාපෘති පවා සමහර විට bashෂෙල් ස්ක්‍රිප්ට් භාවිතා කරයි , ඒවාට යුනික්ස් (එල්එෆ්) රේඛා අවසානය අවශ්‍ය වේ.

core.autocrlfවින්ඩෝස් සඳහා GitHub හි නිර්දේශිත සැකසුම භාවිතා කරමින් , මම යුනික්ස් ව්‍යාපෘතියක් පරීක්ෂා කළහොත් (එය සිග්වින් මත හොඳින් ක්‍රියාත්මක වේ - නැතහොත් මම මගේ ලිනක්ස් සේවාදායකයේ භාවිතා කරන ව්‍යාපෘතියකට දායක වන්නෙමි), පෙළ ගොනු වින්ඩෝස් (CRLF) සමඟ පරීක්ෂා කරනු ලැබේ. ) රේඛා අවසානය, ගැටළු නිර්මාණය කිරීම.

මූලික වශයෙන්, මා වැනි මිශ්‍ර පරිසරයක් core.autocrlfසඳහා, ඕනෑම විකල්පයකට ගෝලීයව සැකසීම සමහර අවස්ථාවල හොඳින් ක්‍රියාත්මක නොවේ. මෙම විකල්පය දේශීය (නිධිය) git වින්‍යාසය මත සැකසිය හැකි නමුත් වින්ඩෝස් හා යුනික්ස් සම්බන්ධ දේවල් දෙකම අඩංගු ව්‍යාපෘතියකට එය ප්‍රමාණවත් නොවේ (උදා: මට සමහර 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
IkeMikeLoux මෙම ක්‍රමය උත්සාහ කරන්න: stackoverflow.com/a/44806034/4377192
ජීන්

එය text=false eol=falseතරමක් සමාන ලෙස ක්‍රියා කරන බව මට පෙනී ගියේය binary. ඒක හරිද? "මේවා පෙළ ලිපිගොනු බව මම දනිමි, නමුත් ඒවා සාමාන්‍ය තත්වයට පත්වීමට මා කැමති නැත" යනුවෙන් සඳහන් කිරීම ප්‍රයෝජනවත් විය හැකිය
joeytwiddle

19

Vim දී ගොනුව විවෘත කරන්න (උදා :) :e YOURFILEENTER, ඉන්පසු

:set noendofline binary
:wq

2
සරලව සංස්කරණය කිරීමෙන් vimසියලු රේඛා නොවෙනස්ව පවතී.
ඇස

සමහර කොකෝපොඩ්ස් ලිපිගොනු සමඟ මට මෙම ගැටලුව තිබේ. ඉහත බොහෝ ඒවා සවි කර ඇත; ඉතිරිය සඳහා, s / {control-v} {control-m} // උපක්‍රමය කළා. පාලක කේත දෙක එකට එකතු වී OS X හි සිටින අය බොහෝ විට වින්ඩෝස් ලිපිගොනු වල දකින ^ M බවට පත් කරයි.
janineanne

16

මටත් මේ ප්‍රශ්නය තිබුණා.

SVN කිසිදු රේඛා අවසන් පරිවර්තනයක් නොකරයි, එබැවින් ලිපිගොනු CRLF රේඛා අවසානය සමඟ නොවෙනස්ව පවතී. ඔබ ව්‍යාපෘතිය git බවට පත් කිරීම සඳහා git-svn භාවිතා කරන්නේ නම්, CRLF අවසානය git නිධිය තුළට පවතිනු ඇත, එය රාජ්‍ය git විසින්ම සොයා ගැනීමට අපේක්ෂා නොකරන - පෙරනිමිය වන්නේ යුනික්ස් / ලිනක්ස් (LF) රේඛා අවසානයන් පමණි පරීක්ෂා කර ඇත.

ඔබ කවුළුවල ඇති ලිපිගොනු පරීක්ෂා කරන විට, ස්වයංක්‍රීය පරිවර්තනය මඟින් ලිපිගොනු නොවෙනස්ව පවතී (වර්තමාන වේදිකාවට දැනටමත් නිවැරදි අවසානයක් ඇති බැවින්), කෙසේ වෙතත්, පරීක්ෂා කරන ලද ලිපිගොනු සමඟ වෙනසක් තිබේද යන්න තීරණය කරන ක්‍රියාවලිය ප්‍රතිලෝම පරිවර්තනය සිදු කරයි. සංසන්දනය කිරීමට පෙර , එහි ප්‍රති ing ලයක් ලෙස පරීක්ෂා කරන ලද ගොනුවේ එල්එෆ් යැයි සිතන දේ නිධියෙහි අනපේක්ෂිත සීආර්එල්එෆ් සමඟ සංසන්දනය කරයි.

මට පෙනෙන පරිදි ඔබේ තේරීම්:

  1. Git-svn භාවිතා නොකර ඔබේ කේතය නව git නිධියකට නැවත ආනයනය කරන්න, මෙයින් අදහස් කරන්නේ රේඛීය අවසානයන් intial git commit --all
  2. Autocrlf අසත්‍ය ලෙස සකසන්න, සහ රේඛා අවසානය git හි කැමති ශෛලියට අයත් නොවන බව නොසලකා හරින්න
  3. ස්වයංක්‍රීය ලිපිගොනු අක්‍රිය කර ඔබගේ ලිපිගොනු පරීක්ෂා කරන්න, සියලු රේඛා අවසානයන් සවි කරන්න, සියල්ල නැවත පරීක්ෂා කර නැවත එය සක්‍රිය කරන්න.
  4. ඔබේ ගබඩාවේ ඉතිහාසය නැවත ලියන්න එවිට මුල් බැඳීම තවදුරටත් අපේක්ෂා නොකළ CRLF අඩංගු නොවේ. (ඉතිහාසය නැවත ලිවීම පිළිබඳ සුපුරුදු අවවාද අදාළ වේ)

පාදසටහන: ඔබ # 2 විකල්පය තෝරා ගන්නේ නම් මගේ අත්දැකීම නම් සමහර සහායක මෙවලම් (රීබේස්, පැච් යනාදිය) සීආර්එල්එෆ් ලිපිගොනු සමඟ නොගැලපෙන අතර ඔබ ඉක්මනින් හෝ පසුව සීආර්එල්එෆ් සහ එල්එෆ් (නොගැලපෙන රේඛාව) සහිත ලිපිගොනු සමඟ අවසන් වනු ඇත. අවසානය). මේ දෙකෙන් හොඳම දේ ලබා ගත හැකි ක්‍රමයක් ගැන මම නොදනිමි.


2
ඉතිහාසය නැවත ලිවීමට කෙනෙකුට හැකියාවක් ඇතැයි උපකල්පනය කරමින් ඔබේ ලැයිස්තුවට එක් කිරීමට 4 වන විකල්පයක් ඇතැයි මම සිතමි: ඔබ මුලින් නිර්මාණය කළ git-svn සමඟ git repo එකක් ගත හැකි අතර, එහි ඉතිහාසය නැවත ලිවීමට CRLF රේඛීය සංග්‍රහ නොමැත. මෙය ඔබගේ සමස්ත svn ඉතිහාසය පුරාම පසුපසට විහිදෙන සාමාන්‍ය රේඛීය සංග්‍රහ ලබා දෙනු ඇත. පරිශීලක keo තෑගි එක් විසඳුමක් stackoverflow.com/a/1060828/64257 .
ක්‍රිස්

ඔබගේ පාද සටහන ගැන: rebaseCRLF සමඟ කිසිදු ගැටළුවක් නොමැත. මා දන්නා එකම ගැටළුව නම් සම්මත git ඒකාබද්ධ කිරීමේ මෙවලම එහි ගැටුම් සලකුණු ("<<<<<<", ">>>>>>" ආදිය) LF සමඟ පමණක් ඇතුළත් කරනු ඇති බැවින් ගැටුම් සලකුණු සහිත ගොනුවක් මිශ්‍ර රේඛා අවසානයක් ඇත. කෙසේ වෙතත්, ඔබ සලකුණු ඉවත් කළ පසු, සියල්ල හොඳයි.
sleske

පසුගිය වසර 3 තුළ git හැසිරවීම වෙනස් වී ඇති බව පෙනේ, මෙය එකල මගේ direct ජු අත්දැකීම විය, එතැන් සිට මට මෙම විශේෂිත කාරණය නැවත බැලීමට අවශ්‍ය නොවීය. ymmv.
ටිම් අබෙල්

1
lesleske ආරම්භක git 2.8, ඒකාබද්ධ කිරීමේ සලකුණු තවදුරටත් මිශ්‍ර රේඛා අවසානය හඳුන්වා නොදේ . Stackoverflow.com/a/35474954/6309
VonC

OnVonC: ඒක නියමයි. මට වින්ඩෝස් හි වැඩ කිරීමට අවශ්‍ය වේලාවන් දැන ගැනීම සතුටක්.
sleske

12

~ / .Gitattributes ගොනුවෙන් පහත ඉවත් කිරීම

* text=auto

පළමු ස්ථානයේ රේඛා-කෙළවර පරීක්ෂා කිරීමෙන් git වළක්වනු ඇත.


6
වැරදියි. එම රේඛාව තිබේ නම්, core.autocrlf හි වින්‍යාසය අභිබවා යනු ඇත. එය 'සත්‍ය' ලෙස සකසා තිබේ නම්, නැත, එම රේඛාව ඉවත් කිරීමෙන් රේඛා අවසානය පරීක්ෂා කිරීමෙන් git වලක්වනු නොලැබේ.
අරෆන්ජියන්

1
එසේ වුවද, core.autocrlf ලෙස සකසා falseඇත්නම්, මෙය ඉවත් නොකළහොත් ස්වයංක්‍රීයව ව්‍යාජ ලෙස සැකසීම බොහෝ සෙයින් උපකාරී නොවනු ඇත, එබැවින් මෙය මට උදව් විය (නමුත් එය තනිවම ප්‍රමාණවත් නොවේ).
මැටි

2
මෙය ඉහළට !! "Git පරික්ෂා කිරීමෙන් වලක්වනු ඇත" කොටස තාක්‍ෂණිකව නිවැරදි නොවන අතර, text=සැකසුම ගැන විශේෂයෙන් සඳහන් කරන එකම පිළිතුර මෙයයි .gitattributes(තිබේ නම්, එය අවහිර කරන්නෙකු වනු ඇත). එබැවින් අනෙක් පිළිතුරු අසම්පූර්ණයි. මම යන්නේ ගෙඩි මගේ ගොනු මම මගේ වෙනස් කොපමණ වතාවක් උනත් "වෙනස්" ලෙස දක්වා පෙන්වීමට දිගටම ඇයි උත්සාහ චරිතයක් පිටතට autocrlfහා safecrlfසැකසුම් සහ පරීක්ෂා සහ එම GIT හැඹිලි සහ දුෂ්කර වන්නේ නැවත එළි පෙහෙළි.
jdunk

10

එය කියවිය යුතුය:

අවවාදයයිtrue : ( ඔබ එය පරීක්ෂා කර බැලුවහොත් / හෝ ඔබගේ වර්තමාන හරය සහිත වෙනත් ෆෝල්ඩරයකට ක්ලෝන කළහොත් .) එල්එෆ් වෙනුවට සීආර්එල්එෆ්

ගොනුවේ මුල් රේඛා අවසානය ඔබගේ ( වත්මන් ) වැඩ කරන නාමාවලියෙහි ඇත.

මෙම පින්තූරය එහි තේරුම පැහැදිලි කළ යුතුය. රූප විස්තරය මෙහි ඇතුළත් කරන්න


උපසිරැසි දක්වා යවන දෙය (ඔබ එසේ කරන්නේ නම්) පරිවර්තනය ඇති බව ද එයින් අදහස් වේ.
jpaugh

10

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

echo "* -crlf" > .gitattributes 

වෙනම කැපවීමකින් මෙය කරන්න, නැතහොත් ඔබ තනි වෙනසක් සිදු කරන විට සම්පූර්ණ ලිපිගොනු වෙනස් කර ඇති බවක් පෙනෙනු ඇත (ඔබ ස්වයංක්‍රීය විකල්පය වෙනස් කර ඇත්ද යන්න මත පදනම්ව)

මෙය සැබවින්ම ක්‍රියාත්මක වේ. මිශ්‍ර රේඛා අවසන් කිරීමේ ව්‍යාපෘතිවල රේඛා අවසානයට Git ගරු කරනු ඇති අතර ඒවා ගැන ඔබට අනතුරු අඟවන්නේ නැත.


2
ඔබට සී.ආර්.එල්.එෆ් සහ එල්එෆ් අතර පරිවර්තනය කිරීමට අවශ්‍ය විට මෙය විශේෂයෙන් ප්‍රයෝජනවත් වේ, නමුත් ඔබට .sh ගොනු කිහිපයක් තිබේ. මම *.sh -crlfහැම වෙලේම පාවිච්චි කරනවා ...
මාටින් ටීවර්ගා

8

මම වින්ඩෝස් වල git ගැන වැඩි යමක් දන්නේ නැහැ, නමුත් ...

Git මඟින් ආපසු එන ආකෘතිය ධාවන වේදිකාවට (වින්ඩෝස්) ගැලපෙන පරිදි පරිවර්තනය කරන බව මට පෙනේ. CRLF යනු වින්ඩෝස් හි පෙරනිමි ප්‍රතිලාභ ආකෘතිය වන අතර LF යනු අනෙකුත් බොහෝ මෙහෙයුම් පද්ධති සඳහා පෙරනිමි ප්‍රතිලාභ ආකෘතියයි.

කේතය වෙනත් පද්ධතියකට ගෙන යන විට ආපසු පැමිණීමේ ආකෘතිය නිසි ලෙස සකසනු ඇත. JPEGs හි LFs CRLF බවට පරිවර්තනය කිරීමට උත්සාහ කරනවාට වඩා ද්විමය ලිපිගොනු නොවෙනස්ව තබා ගැනීමට git දක්ෂ බව මම සිතමි.

සාරාංශයක් ලෙස, මෙම පරිවර්තනය ගැන ඔබ ඕනෑවට වඩා කලබල විය යුතු නැත. කෙසේ වෙතත්, ඔබ ඔබේ ව්‍යාපෘතිය තාර බෝලයක් ලෙස සංරක්ෂණය කිරීමට ගියහොත්, සෙසු කේත රචකයින් සී.ආර්.එල්.එෆ් වෙනුවට එල්එෆ් රේඛීය ටර්මිනේටර් තිබීම අගය කරනු ඇත. ඔබ කොතරම් සැලකිල්ලක් දක්වනවාද යන්න මත පදනම්ව (සහ ඔබ නොට්පෑඩ් භාවිතා නොකිරීම මත පදනම්ව), ඔබට හැකි නම් LF ප්‍රතිලාභ භාවිතා කිරීමට git සැකසීමට ඔබට අවශ්‍ය විය හැකිය :)

උපග්‍රන්ථය: CR යනු ASCII කේතය 13, LF යනු ASCII කේතය 10 වේ. මේ අනුව, CRLF බයිට් දෙකක් වන අතර LF එකක් වේ.


5
කිසිවෙකු එය පවසා ඇති බවක් නොපෙනෙන හෙයින්, CR යනු "කරත්ත නැවත පැමිණීම" සහ LF යනු "රේඛීය සංග්‍රහය" යන්නයි. දෙවන සටහනක් ලෙස, බොහෝ වින්ඩෝස් සංස්කාරකවරු නිහ ly ව එල්එෆ් අක්ෂරයෙන් පෙළ ගොනුවක් වෙනස් කරනු ඇත, ඒ වෙනුවට සීආර්එල්එෆ් අක්ෂර යුගලය ලෙස නව රේඛාවක් දක්වයි. සංස්කාරකයේ පරිශීලකයාට අනතුරු අඟවනු නොලැබේ, නමුත් වෙනස Git දකිනු ඇත.
user2548343

7

ඔබ නවතම git ස්ථාපනය කර ඇති බවට වග බලා ගන්න. Git (2.7.1 වෙළුම) භාවිතා කරන විට
මම ඉහත පරිදි කළෙමි git config core.autocrlf false, නමුත් එය ක්‍රියාත්මක වූයේ නැත.
Git යාවත්කාලීන කිරීමේදී එය දැන් ක්‍රියාත්මක වේ (2.7.1 සිට 2.20.1 දක්වා).


මම හිතන්නේ ඔබ අදහස් කළේ ඔබට 2.17.1 git ඇති බවයි. මට එකම ගැටළුවක් ඇති අතර යාවත්කාලීන කිරීම සිදු කළ අතර මෙයද එය නිවැරදි කළේය. ඔබගේ පිළිතුර මම දැකීම සතුටක්!
පිලිප් මැක්මුලන්

5
  1. නොට්පෑඩ් ++ හි ගොනුව විවෘත කරන්න.
  2. Edit / EOL පරිවර්තනය වෙත යන්න.
  3. වින්ඩෝස් ආකෘතියට ක්ලික් කරන්න.
  4. ගොනුව සුරකින්න.

1
git config --global core.autocrlf falseරේඛීය අවසානය කැපවීමකට යොමු Unixකිරීමෙන් Git වැළැක්වීමට භාවිතා කිරීමට උත්සාහ කරන්න . git config core.autocrlfඑය සත්‍ය වශයෙන්ම අසත්‍යයක් ලෙස පරික්ෂා කර බැලීමට පසු විපරම් කරන්න .
කොන්ටැන්ගෝ

5

OP හි ප්‍රශ්නය වින්ඩෝස් සම්බන්ධ වන අතර පරිපාලක ක්‍රියා විරහිත බැවින් නාමාවලිය වෙත නොට්පෑඩ් ++ හි ගොනුවක් හෝ ධාවනය නොකර මට වෙනත් අය භාවිතා කළ නොහැක .. එබැවින් මෙම මාර්ගයට යාමට සිදු විය:

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

3

බොහෝ පෙළ සංස්කාරකවරුන් ඔබට වෙනස් කිරීමට ඉඩ දෙයි LF, පහත පරමාණු උපදෙස් බලන්න. සරල හා පැහැදිලි.


CRLFපහළ දකුණේ ක්ලික් කරන්න :

රූප විස්තරය මෙහි ඇතුළත් කරන්න

තෝරා LFමත දක දී:

රූප විස්තරය මෙහි ඇතුළත් කරන්න


3

ඔබේ "කේතය" විවිධ මෙහෙයුම් පද්ධති දෙකක (ලිනක්ස් සහ වින්ඩෝස්) භාවිතා කරන අතරතුර CRLF හට යම් ගැටළුවක් ඇතිවිය හැකිය. මගේ පයිතන් ස්ක්‍රිප්ට් ලිනක්ස් ඩොකර් බහාලුම්වල ලියා වින්ඩෝස් ගිට්-බාෂ් භාවිතයෙන් තල්ලු කරන ලදි. සීආර්එල්එෆ් වෙනුවට එල්එෆ් ආදේශ කරන බවට එය මට අනතුරු ඇඟවීය. මම ඒ ගැන වැඩි යමක් සිතුවේ නැත, නමුත් පසුව මම තිර රචනය ආරම්භ කරන විට, එය පවසයි /usr/bin/env: 'python\r': No such file or directory. දැන් එය \rඔබ වෙනුවෙන් දැඩි කිරීම සඳහා ය. වින්ඩෝස් "CR" - කරත්ත ආපසු යැවීම - '\ n' ට ඉහළින් නව රේඛා අක්‍ෂර ලෙස භාවිතා කරයි - \n\r. එය ඔබ සලකා බැලිය යුතු දෙයකි.


මෙය වැඩි වශයෙන් අවධාරණය කළ යුතුය! වින්ඩෝස් සංවර්ධකයෙකුට ඩොකර් භාවිතා කිරීම සහ ලිනක්ස් බහාලුම් ගෙන ඒම සාමාන්‍ය දෙයකි - තවද ඔබ ෂෙල් ස්ක්‍රිප්ට් එකක් git සමඟ ගෙනැවිත් එය LF CRLF බවට පරිවර්තනය කළහොත් එය බිඳී යනු ඇත .
ඉවාන් මොරිසන්

3

වින්ඩෝස් හි බොහෝ මෙවලම් පිළිගන්නේ පෙළ ලිපිගොනු වල LF පමණි. උදාහරණයක් ලෙස ඔබට පහත දැක්වෙන උදාහරණ අන්තර්ගතය (කොටස) සමඟ '.editorconfig' නම් ගොනුවකින් විෂුවල් ස්ටුඩියෝ සඳහා හැසිරීම පාලනය කළ හැකිය:

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

මුල් වින්ඩෝස්-නොට්පෑඩ් පමණක් එල්එෆ් සමඟ ක්‍රියා නොකරන නමුත් තවත් නිසි සරල සංස්කාරක මෙවලම් තිබේ!

එබැවින් ඔබ වින්ඩෝස් හි පෙළ ලිපිගොනු වලද එල්එෆ් භාවිතා කළ යුතුය. මෙය මගේ පණිවිඩයයි. කවුළුවල CRLF භාවිතා කිරීමට හේතුවක් නැත!

(එකම සාකච්ඡාව C / ++ හි ඇතුළත් ඇතුළත් මාර්ග භාවිතා කරයි, එය විකාරයකි, කප්පාදුව සමඟ # ඇතුළත් කරන්න <pathTo / myheader.h> භාවිතා කරන්න!

එබැවින් git සඳහා නිසි සැකසුම වේ

git config core.autocrlf false

මගේ පණිවිඩය: dos2unix සහ unix2dos වැනි පැරණි චින්තන වැඩසටහන් අමතක කරන්න. වින්ඩෝස් යටතේ LF භාවිතා කිරීම සුදුසු බව ඔබේ කණ්ඩායමේ පැහැදිලි කරන්න.


2

GNU / Linux shell විමසුමේදී, dos2unix & unix2dos විධානයන් මඟින් MS වින්ඩෝස් වෙතින් එන ඔබේ ගොනු පහසුවෙන් පරිවර්තනය කිරීමට / සංයුති කිරීමට ඉඩ ලබා දේ.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.