Ik ben dol op gebruik git diff -w
om whitespace-verschillen te negeren. Maar ik heb net gemerkt dat het zelfs whitespace-verschillen in het midden van de lijnen negeert. Hoe kon ik alleen witruimteverschillen negeren die bij het begin (^) of eind ($) van regels komen?
Antwoord 1, Autoriteit 100%
Voor het einde van de regelgebruik:
git diff --ignore-space-at-eol
In plaats van wat u momenteel gebruikt:
git diff -w (--ignore-all-space)
voor start van de lijn … je hebt geen geluk als je een ingebouwde oplossing wilt.
Als je echter het niet erg vindt om je handen vies te krijgen, is er een nogal oude patch die daar ergens zweeft die ondersteuning toevoegt voor “- elignore-space-at-sol”.
Antwoord 2, Autoriteit 2%
Dit is een oude vraag, maar wordt nog steeds regelmatig bekeken / nodig. Ik wil me plaatsen op voorzichtiglezers zoals ik dat witspace zoals vermeld in de vraag van de OP is niet hetzelfde als de definitie van Regex, om newlines, tabs en ruimtetekens toe te voegen – Git vraagt je expliciet te zijn. Bekijk hier enkele opties: https://git-scm.com/ BOEK / EN / V2 / AANPASSING-GIT-GIT-configuratie
Zoals vermeld, git diff -b
of git diff --ignore-space-change
negeert spaties bij lijnuiteinden. Als u dat wenst dat instelling uw standaardgedrag is, voegt de volgende regel toe dat de intentie op uw .gitconfig-bestand is, dus het zal altijd de ruimte negeren om eindigt op:
git config --global core.whitespace trailing-space
In mijn geval vond ik deze vraag omdat ik geïnteresseerd was in het negeren van ‘carriage return witpace verschillen’, dus ik had dit nodig:
git diff --ignore-cr-at-eol
OF
git config --global core.whitespace cr-at-eol
van hier .
Je kunt het ook de standaard alleen voor die repomaken door de –global parameter weg te laten en het instellingenbestand voor die repo in te checken. Voor het CR-probleem waarmee ik werd geconfronteerd, verdwijnt het na het inchecken als warncrlf of autocrlf = true in de [core]-sectie van het .gitconfig-bestand.