LF zal worden vervangen door CRLF in git – Wat is dat en is het belangrijk?

Als ik een nieuwe rails-applicatie maak, zie ik een waarschuwing in git over LF-vervanging. Ik doe
git init
git add .

en dan boem! Ik zie dit voor bijna alle bestanden verschijnen. Ik blijf meestal gewoon doorgaan en mijn applicatie bouwen en deze verdwijnt na veel wijzigingen in bestanden.

Voorbeeld:

Het bestand heeft zijn originele regeleinden in uw werkdirectory.
waarschuwing: LF wordt vervangen door CRLF in Gemfile.

Het bestand heeft zijn originele regeleinden in uw werkdirectory.
waarschuwing: LF wordt vervangen door CRLF in Gemfile.lock.

Het bestand heeft zijn originele regeleinden in uw werkdirectory.
waarschuwing: LF wordt vervangen door CRLF in README.

Wat is het verschil tussen LF en CRLF?

Moet ik me hier op de lange termijn zorgen over maken of het gewoon negeren en doorgaan zoals ik gewoonlijk doe?


Antwoord 1, autoriteit 100%

In Unix-systemen wordt het einde van een regel weergegeven met een line feed (LF). In vensters wordt een regel weergegeven met een regelterugloop (CR) en een regelinvoer (LF) dus (CRLF). wanneer je code van git krijgt die is geüpload vanaf een unix-systeem, hebben ze alleen een LF.

Als je een enkele ontwikkelaar bent die op een Windows-machine werkt en het je niet kan schelen dat git automatisch LF’s vervangt door CRLF’s, kun je deze waarschuwing uitschakelen door het volgende in de git-opdrachtregel te typen

git config core.autocrlf true

Als je een intelligente beslissing wilt nemen hoe git hiermee om moet gaan, lees de documentatie

Hier is een fragment

Opmaak en witruimte

Opmaak- en witruimteproblemen zijn enkele van de meest frustrerende en
subtiele problemen die veel ontwikkelaars tegenkomen bij het samenwerken,
vooral cross-platform. Het is heel gemakkelijk voor patches of andere
werkte samen om subtiele witruimteveranderingen te introduceren omdat
editors introduceren ze stilletjes, en als uw bestanden ooit een
Windows-systeem, kunnen hun regeleindes worden vervangen. Git heeft er een paar
configuratie-opties om u te helpen bij deze problemen.

core.autocrlf

Als u onder Windows programmeert en werkt met mensen die dat niet zijn
(of vice versa), zul je waarschijnlijk op een gegeven moment problemen met het einde van de regel tegenkomen
punt. Dit komt omdat Windows zowel een terugloopteken gebruikt
en een linefeed-teken voor nieuwe regels in zijn bestanden, terwijl Mac en
Linux-systemen gebruiken alleen het linefeed-teken. Dit is een subtiele maar
ongelooflijk vervelend feit van platformonafhankelijk werk; veel redacteuren op
Windows vervangt stilletjes bestaande regeleinden in LF-stijl door CRLF, of
voeg beide regeleindtekens in wanneer de gebruiker op de enter-toets drukt.

Git kan dit aan door CRLF regeleinden automatisch te converteren naar LF wanneer
je voegt een bestand toe aan de index, en vice versa wanneer het code uitcheckt
op uw bestandssysteem. U kunt deze functionaliteit inschakelen met de
core.autocrlf instelling. Als u een Windows-computer gebruikt, stelt u deze in op true
– dit zet LF-uitgangen om in CRLF wanneer je code uitcheckt:

$ git config --global core.autocrlf true

Als je een Linux- of Mac-systeem gebruikt dat LF-regeleindes gebruikt, dan moet je
wil niet dat Git ze automatisch converteert wanneer je bestanden uitcheckt;
als er echter per ongeluk een bestand met CRLF-uitgangen wordt geïntroduceerd,
dan wil je misschien dat Git het repareert. Je kunt Git vertellen om CRLF te converteren naar
LF op commit maar niet andersom door core.autocrlf in te stellen op
invoer:

$ git config --global core.autocrlf input

Deze instelling zou u CRLF-uitgangen moeten geven in Windows-kassa’s,
maar LF eindigt op Mac- en Linux-systemen en in de repository.

Als u een Windows-programmeur bent die een project met alleen Windows uitvoert, dan
kan deze functionaliteit uitschakelen, waarbij de wagenretouren worden vastgelegd in de
repository door de configuratiewaarde in te stellen op false:

$ git config --global core.autocrlf false

Antwoord 2, autoriteit 21%

Als je wilt, kun je deze functie in je git core-configuratie deactiveren met

git config core.autocrlf false

Maar het is beter om de waarschuwingen gewoon te verwijderen met

git config core.autocrlf true

Other episodes