Git mark file as binäralternativ
Git gissar vanligtvis korrekt om en blob innehåller text eller binär data genom att undersöka innehållets början. Ibland kan du dock åsidosätta sitt beslut, antingen för att en blob innehåller binär data senare i filen eller för att innehållet, medan det är tekniskt sammansatt av texttecken, är ogenomskinligt för en mänsklig läsare. Till exempel innehåller många postscript-filer endast ASCI-tecken, men producerar bullriga och meningslösa DIFFER. Det enklaste sättet att markera en fil som binär är att avbryta diff attributet i filen. gitattributes: Detta kommer att orsaka att git genererar binära filer skiljer sig (eller en binär patch om binära korrigeringar är aktiverade) istället för en vanlig diff. Sammanfattningsvis: specificera - diff i. gitattributes. svarade dec 18 11 kl 16:59 diff kontrollerar endast om git försöker visa en textdifferens för filen, det är inte attributets kontrolllinje som slutar konvertering. Text är det korrekta attributet. ndash Charles Bailey Dec 18 11 på 17:04 medan - text i. gitattributes inte fungerade, svarade den 30 maj kl 13:44 Binär är en stenografi för - crlf - diff ndash dtech dec 20 13 kl 15:38 Vad är skillnaden mellan detta och - text. ndash Flimm 8 maj 15 kl 14:32 Ditt svar 2017 Stack Exchange, IncUt boxen kan git enkelt lägga till binära filer i sitt index och lagra dem också på ett effektivt sätt om du inte gör frekventa uppdateringar på stora, okomprimerbara filer. Problemen börjar när git behöver generera diffs och fusioner: git kan inte generera meningsfulla diffs eller sammanfoga binära filer på något sätt som kan vara meningsfullt. Så alla sammanslagningar, rebaser eller cherrypicks som innebär en ändring i en binär fil kommer att innebära att du gör en manuell konfliktlösning på den binära filen. Du måste bestämma om den binära filen ändras är sällsynt att du kan leva med det extra manuella arbetet som de medför i det normala git-arbetsflödet som innebär sammanslagningar, rebaser, körsbärspinnar. svarade jan 15 11 på 0:21 Jag vet inte om några verktyg som försöker lagra diffs av binära filer för versionskontroll, men det är värt att notera att Git inte gör det även för textfiler. Git lagrar filer som blobs, och det gör en skillnad mellan dem när det behövs. Om du vill se versionskontroll på något som PhotoshopIllustrator-dokument kan GridIron Flow göra tricket för dig. Om du försöker hålla dem i synkronisering mellan maskiner kan Dropbox eller Rsync hantera det, men de kommer inte att göra intelligent skillnad. svarade jan 15 11 vid 0: 15DESCRIPTION Det här kommandot uppdaterar indexet med det aktuella innehållet som finns i arbetsträdet för att förbereda innehållet som är isatt för nästa commit. Det lägger vanligtvis det aktuella innehållet i befintliga sökvägar som helhet men med vissa alternativ kan det också användas för att lägga till innehåll med endast en del av de ändringar som gjorts i de trädträffar som tillämpas, eller ta bort sökvägar som inte finns i arbetsträdet längre. Indexet innehåller en ögonblicksbild av innehållet i det aktiva trädet, och det är den här ögonblicksbilden som tas som innehållet i nästa åtagande. Således efter att ha gjort några ändringar i arbetstreet och innan du kör kommandot kommandot måste du använda add-kommandot för att lägga till nya eller ändrade filer i indexet. Detta kommando kan utföras flera gånger före ett commit. Det lägger bara till innehållet i den angivna filen (erna) vid det tillfälle som läggs till kommandot körs om du vill att senare ändringar ingår i nästa commit, då måste du köra git add igen för att lägga till det nya innehållet i indexet. Git-statuskommandot kan användas för att få en sammanfattning av vilka filer som har ändringar som är iscensatte för nästa commit. Git add-kommandot kommer inte att lägga till ignorerade filer som standard. Om några ignorerade filer explicit anges på kommandoraden kommer git-tillägget att misslyckas med en lista över ignorerade filer. Ignorerade filer som uppnåtts av katalogrekurs eller filnamnets globbing utförs av Git (citera dina globs före skalet) kommer tyst att ignoreras. Git add-kommandot kan användas för att lägga till ignorerade filer med alternativet - f (force). Vänligen se git-commit1 för alternativa sätt att lägga till innehåll till ett commit. Filer för att lägga till innehåll från. Fileglobs (t ex c) kan ges för att lägga till alla matchande filer. Också ett ledande katalognamn (t. ex. dir att lägga till dirfile1 och dirfile2) kan ges för att uppdatera indexet för att matcha det aktuella läget för katalogen som helhet (t. ex. att ange att Dir kommer spela in inte bara en fil dirfile1 modifierad i arbetsträdet, en fil dirfile2 läggs till arbetsträdet, men också en fil dirfile3 borttagen från arbetsträdet. Observera att äldre versioner av Git som används för att ignorera borttagna filer använder --no-alla alternativ om du vill lägga till ändrade eller nya filer men ignorera borttagna Don8217t lägger till filerna, visa bara om de existerar och eller ignoreras. Tillåt att lägga till annars ignorerade filer. Lägg till ändrat innehåll i arbetsträdet interaktivt till indexet. Valfria sökargument kan tillhandahållas för att begränsa operationen till en delmängd av det aktiva trädet. Se 8220Interaktivt läge8221 för detaljer. Interaktivt välj plånbitar mellan indexet och arbetstreet och lägg till dem i indexet. Detta ger användaren möjlighet att granska skillnaden innan man lägger till ändrat innehåll s till indexet. Detta körs effektivt add-interactive. men förbikopplar den ursprungliga kommandomenyn och hoppar direkt till patch-underkommandot. Se 8220Interaktivt läge8221 för detaljer. Öppna diff vs. indexet i en editor och låt användaren redigera den. Efter att redigeraren stängdes, justera huvudhuvudena och använd plåstret till indexet. Avsikten med detta alternativ är att välja och välja linjer i korrigeringsfilen som ska tillämpas, eller till och med att ändra innehållet i rader som ska visas. Detta kan bli snabbare och mer flexibelt än att använda den interaktiva hunkällaren. Det är dock lätt att förvirra sig och skapa en lapp som inte är tillämplig på indexet. Se REDIGERA PATCHES nedan. Uppdatera indexet bara där det redan har en post som matchar ltpathspecgt. Detta tar bort såväl som ändrar indexposter för att matcha arbetstreet, men lägger till inga nya filer. Om ingen ltpathspecgt ges när - u alternativ används, uppdateras alla spårade filer i hela arbetstreet (gamla versioner av Git används för att begränsa uppdateringen till den aktuella katalogen och dess underkataloger). Uppdatera indexet inte bara där arbetsträdet har en fil som matchar ltpathspecgt men också där indexet redan har en post. Detta lägger till, ändrar och tar bort indexposter för att matcha arbetsträdet. Om ingen ltpathspecgt ges när - Ett alternativ används, uppdateras alla filer i hela arbetstreet (gamla versioner av Git används för att begränsa uppdateringen till den aktuella katalogen och dess underkataloger). Uppdatera indexet genom att lägga till nya filer som inte är kända för indexet och filer som har ändrats i arbetet, men ignorerar filer som har tagits bort från arbetsträdet. Det här alternativet är en no-op när ingen ltpathspecgt används. Det här alternativet är främst för att hjälpa användare som är vana vid äldre versioner av Git, vars git add ltpathspecgt82308203 var en synonym för git add - no-all ltpathspecgt82308203, dvs ignorerad borttagna filer. Spela in bara det faktum att sökvägen kommer att läggas till senare. En post för sökvägen placeras i indexet utan innehåll. Det här är användbart för att bland annat visa det obestridna innehållet i sådana filer med git diff och begå dem med git commit - a. Don8217t lägg till filerna, men uppdatera bara deras stat () - information i indexet. Om vissa filer inte kan läggas till på grund av fel som indexerar dem, avbryta inte operationen, men fortsätt att lägga till de andra. Kommandot ska fortfarande avslutas med status som icke-noll. Konfigurationsvariabeln add. ignoreErrors kan ställas in till true för att göra detta till standardbeteendet. Detta alternativ kan endast användas tillsammans med --dry-run. Genom att använda det här alternativet kan användaren kontrollera om någon av de angivna filerna skulle ignoreras, oavsett om de redan finns i arbetsträdet eller inte. Åsidosätta körbar bit av de tillagda filerna. Den körbara biten ändras bara i indexet, filerna på disken lämnas oförändrade. Det här alternativet kan användas för att skilja kommandoradsalternativ från listan över filer (användbart när filnamn kan misstas för kommandoradsalternativ). Konfiguration Den valfria konfigurationsvariabeln core. excludesFile anger en sökväg till en fil som innehåller mönster av filnamn för att utesluta från git-add, liknande GITDIRinfoexclude. Mönster i exkluderingsfilen används förutom de i infoexclude. Se gitignore5. Lägger till innehåll från alla. txt-filer under Dokumentationskatalog och dess underkataloger: Observera att asterisken är citerad från skalet i det här exemplet, så att kommandot kan inkludera filerna från underkataloger i dokumentationskatalog. Överväg att lägga till innehåll från alla git-.sh-skript: Eftersom det här exemplet låter skalet expandera asterisken (dvs du listar filerna explicit), anser den inte subdirgit-foo. sh. Interaktivt läge När kommandot går in i det interaktiva läget, visar det utdata från statuskommandot, och går sedan in i sin interaktiva kommandoslinga. Kommandoslingan visar listan över underkommandon som är tillgängliga och ger en snabb Vad nugt. I allmänhet när prompten slutar med en enda gt. du kan bara välja ett av de givna valen och skriva tillbaka, så här: Du kan också säga s eller sta eller status ovan så länge valet är unikt. Huvudkommandoslingan har 6 underkommandon (plus hjälp och avsluta). Detta visar förändringen mellan HEAD och index (dvs vad som kommer att begås om du säger git-commit) och mellan index - och arbetsträdfiler (dvs vad du kunde föra vidare innan git commit med git add) för varje sökväg. En provutgång ser så här ut: Det visar att foo. png har skillnader från HEAD (men det är binärt så att linjans räkning inte kan visas) och det finns ingen skillnad mellan indexerad kopia och träningsversionen (om arbetsträdet var också annorlunda, binär skulle ha visats i stället för ingenting). Den andra filen, git-add interactive. perl, har 403 linjer tillagda och 35 rader raderas om du begår vad som finns i indexet, men arbetsfilen har ytterligare ändringar (en tillägg och en radering). Detta visar statusinformationen och utfärdar en uppdateringsfråga. När prompten slutar med dubbelt gtgt. du kan göra mer än ett urval, sammanfogade med blankutrymme eller komma. Du kan också säga intervall. T. ex. 2-5 7,9 för att välja 2,3,4,5,7,9 från listan. Om det andra numret i ett sortiment utelämnas tas alla återstående patchar. T. ex. 7- för att välja 7,8,9 från listan. Du kan säga att välja allt. Det du valde markeras sedan med. Så här: För att ta bort urval, prefixa inmatningen med - så här: Efter att ha valt valet, svara med en tom linje för att styra innehållet i arbetsträdfilerna för valda sökvägar i indexet. Detta har en mycket liknande användargränssnitt att uppdatera. och den iscensatte informationen för valda sökvägar återställs till HEAD-versionen. Att återgå till nya banor gör dem otrackade. Det här har en mycket liknande användargränssnitt för att uppdatera och återgå. och låter dig lägga till ospårade sökvägar till indexet. Detta låter dig välja en sökväg ut ur en status som val. Efter att ha valt sökvägen presenteras skillnaden mellan indexet och arbetsträdet och frågar om du vill ställa in förändringen av varje hunk. Du kan välja ett av följande alternativ och skriva tillbaka: Efter att ha bestämt ödet för alla hunks, om det finns någon hunk som valts, uppdateras indexet med de valda sökarna. Du kan utelämna att skriva tillbaka här, genom att ställa in konfigurationsvariabeln interactive. singleKey till true. Detta låter dig granska vad som kommer att begås (dvs mellan HEAD och index). REDIGERING AV PATCHER När du lägger till git add - e eller väljer e från den interaktiva sökväljaren öppnas en korrigeringsfil i din editor efter att redigeraren har gått ut, resultatet tillämpas på indexet. Du kan göra godtyckliga ändringar i korrigeringsfilen, men notera att vissa ändringar kan ha förvirrande resultat eller till och med resultera i en korrigeringsfil som inte kan tillämpas. Om du vill avbryta operationen helt (dvs inget nytt i indexet), raderar du helt enkelt alla rader i korrigeringsfilen. Listan nedan beskriver några vanliga saker du kan se i en korrigering, och vilka redigeringsoperationer är meningsfulla på dem. Det tillagda innehållet representeras av rader som börjar med 43. Du kan förhindra att du lägger till några tilläggslinjer genom att radera dem. Avlägsnat innehåll representeras av rader som börjar med -. Du kan förhindra att du tar bort deras borttagning genom att konvertera - till ett (mellanslag). Ändrat innehåll representeras av - linjer (tar bort gammalt innehåll) följt av 43 linjer (lägger till ersättningsinnehåll). Du kan förhindra att du modifierar ändringen genom att konvertera - linjer till och ta bort 43 linjer. Akta dig för att modifiera endast hälften av paret kommer troligen att introducera förvirrande ändringar i indexet. Det finns också mer komplexa operationer som kan utföras. Men akta dig för att eftersom plåstret bara tillämpas på indexet och inte arbetsträdet, verkar trädet för att ångra ändringen i indexet. Om du till exempel introducerar en ny rad i indexet som inte finns i HEAD eller arbetsträdet kommer den nya linjen för commit att styras, men linjen verkar återställas i arbetsträdet. Undvik att använda dessa konstruktioner, eller gör det med stor försiktighet. Att ta bort orörd innehåll Innehåll som inte skiljer sig mellan index och arbetsträd kan visas på kontextlinjer, som börjar med ett (mellanslag). Du kan föra samman kontextlinjer för borttagning genom att konvertera utrymmet till en -. Den resulterande arbetsträdfilen visas för att lägga till innehållet igen. Ändra befintligt innehåll Man kan också ändra sammanhangslinjer genom att placera dem för borttagning (genom att konvertera till -) och lägga till en 43-linje med det nya innehållet. På samma sätt kan man ändra 43 linjer för befintliga tillägg eller modifieringar. I alla fall kommer den nya modifieringen att återföras i arbetsträdet. Du kan också lägga till nytt innehåll som inte existerar i korrigeringsfilen, helt enkelt lägga till nya rader, var och en börjar med 43. Tillägget kommer att visas återgår i arbetsträdet. Det finns också flera operationer som bör undvikas helt eftersom de gör att plåstret omöjligt kan tillämpas: Lägg till kontext () eller borttagning (-) rader raderar kontext eller raderingslinjer som ändrar innehållet i kontext eller raderingslinjer
Comments
Post a Comment