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