GIT

Software screenshot:
GIT
Software informatie:
Versie: 2.16.0 Bijgewerkt
Upload datum: 20 Jan 18
Ontwikkelaar: Junio C Hamano
Licentie: Gratis
Populariteit: 64

Rating: 3.0/5 (Total Votes: 1)

Git is een van de meest gebruikte gedistribueerde versiecontrolesystemen, door ontwikkelaars over de hele wereld beschreven als de nummer één VCS-service. Het werkt alleen vanaf de terminal, maar verschillende front-ends kunnen worden gedownload.

Het is een gratis en open source-besturingssysteem voor een versie die zowel grote als kleine projecten met maximale efficiëntie en snelheid aankan. Het programma kan eenvoudig worden beschreven als zijnde klein, snel en gedistribueerd.


Opdrachtregelopties

Het programma wordt geleverd met een handvol commando's die gemakkelijk door iedereen vanaf het begin kunnen worden onthouden. Alle bewerkingen worden lokaal uitgevoerd en zijn ontworpen om op de Linux-kernel te werken.

Inbegrepen commando's zijn optellen, splitsen, vertakken, afrekenen, klonen, vastleggen, diff, fetch, grep, init, log, samenvoegen, mv, pull, push, rebase, reset, rm, show, status en tag. Je kunt gemakkelijk leren wat elke opdracht doet door de opdracht git --help vanuit een terminalvenster uit te voeren.


Functies in één oogopslag

Wanneer u Git gebruikt, kunnen gebruikers bestanden toevoegen, takken of paden uitchecken, kluizenreposities archiveren, lege Git-repo's maken, zich aansluiten bij meerdere ontwikkelingshistories, de status van de werkboom weergeven, wijzigingen vastleggen en ook lijsten maken, opsommen of verwijder takken.

Bovendien kunnen gebruikers met de toepassing wijzigingen bekijken tussen commits en werkende bomen, regels afdrukken die overeenkomen met een patroon, commitlogs bekijken, referenties en objecten downloaden, bestanden hernoemen of verplaatsen, symlinks en directory's, externe refs bijwerken en verwijderen bestanden uit een werkende structuur.


Verschillende grafische front-ends bestaan

Zelfs als het een software met opdrachtregel is, zijn er verschillende grafische gebruikersinterfaces (GUI's) beschikbaar, waaronder git-cola, SmartGit, GitEye, giechelen en gitg. Het project overtreft SCM-hulpprogramma's (Software Configuration Management), zoals CVS, Subversion, ClearCase en Perforce, door goedkope lokale vertakking, meerdere workflows en handige staging-gebieden.


Bottom line

Kort samengevat, Git is een gratis versiecontrolesysteem met bliksemsnelle prestaties, het is eenvoudig te leren en heeft een zeer kleine voetafdruk. Met Git kunt u wrijvingsloze contextomschakeling, op rollen gebaseerde coderegels, op functies gebaseerde werkstromen en wegwerpexperimenten uitvoeren.

Wat is nieuw in deze release:

  • Een helperfunctie om een ​​enkele gehele regel in strbuf te lezen, heeft ten onrechte een OOM-fout bij EOF onder bepaalde omstandigheden veroorzaakt, die is verholpen.
  • Naast & quot; cc: # cruft & quot ;, & quot; cc: a@dd.re.ss # cruft & quot; werd geleerd om & quot; git send-email & quot; als een geldige manier om te vertellen dat het ook een carbon-kopie moet sturen in de trailersectie.
  • Regressie tot & quot; gitk --bisect & quot; door een recente update.
  • Anders dan & quot; git commit-tree & lt; bestand & quot ;, & quot; git commit-tree -F file & quot; heeft de inhoud van het bestand niet woordelijk doorgegeven en in plaats daarvan een onvolledige regel aan het einde ingevuld, als deze bestaat. Dit laatste is bijgewerkt om het gedrag van het eerste te evenaren.
  • & quot; git archive & quot ;, vooral wanneer het wordt gebruikt met pathspec, heeft het een lege map opgeslagen in zijn uitvoer, hoewel Git dit zelf nooit doet. Dit is opgelost.
  • Foutcorrectie van API's die toevallig ook waarschuwingen uit GCC onderdrukken.
  • & quot; git gc & quot; probeert te voorkomen dat tegelijkertijd twee instanties worden uitgevoerd door pid / host van en naar een vergrendelingsbestand te lezen en te schrijven; het gebruikte om een ​​onjuiste fscanf () -indeling te gebruiken tijdens het lezen, die is gecorrigeerd.
  • Er is ons geleerd dat we het niet leuk vinden & quot; echo -e & quot;.
  • Code cmp.std.c nitpick.
  • & quot; git beschrijven - match & quot; geleerd om meerdere patronen te nemen in v2.13 series, maar de feature negeerde de patronen na de eerste en werkte helemaal niet. Dit is opgelost.
  • & quot; git cat-file --textconv & quot; is onlangs begonnen met segfaulting, die is gecorrigeerd.
  • Het ingebouwde patroon om de & quot; functieheader & quot; te detecteren voor HTML kwam niet overeen met elementen zonder attributen, die zijn gecorrigeerd.
  • & quot; git mailinfo & quot; was los in het decoderen van geciteerde afdrukbare en geproduceerde garbage als de twee letters na het gelijkteken niet hexadecimaal zijn. Dit is opgelost.
  • De documentatie voor '-X' voor samenvoegingen is misleidend geschreven om aan te geven dat & quot; -s van hen & quot; bestaat, wat niet het geval is.
  • Geef de naam van ons systeem op als 'Git & quot; in de uitvoer van request-pull script.
  • Correcties voor een handvol geheugentoegangsproblemen geïdentificeerd door valgrind.
  • Backports een morele equivalent van de 2015-fix voor de poll-emulatie van de upstream gnulib om incidentele breuken op HPE NonStop te verhelpen.
  • In de & quot; - format = ... & quot; optie van de & quot; git for-each-ref & quot; opdracht (en zijn vrienden, d.w.z. de lijstmodus van & quot; git branch / tag & quot;) & quot;% (atom:) & quot; (bijvoorbeeld & quot;% (refname:) & quot ;, & quot;% (body:) & quot; gebruikt voor error out.) Behandel ze alsof de dubbele punt en een lege string die erop volgde er niet waren.
  • Gebruikers met & quot; color.ui = always & quot; in hun configuratie werden gebroken door een recente wijziging die loodgietersopdrachten maakte om aandacht aan hen te schenken, aangezien de patch intern werd aangemaakt door & quot; git add -p & quot; waren gekleurd (eh) en onbruikbaar gemaakt. Dit is opgelost.
  • & quot; git branch -M a b & quot; terwijl op een tak die volledig niet verwant is aan een tak a of tak b zich misdragen heeft wanneer meerdere werkboom in gebruik was. Dit is opgelost.
  • & quot; git fast-export & quot; met -M / -C optie uitgegeven & quot; kopiëren & quot; instructie op een pad dat tegelijkertijd wordt gewijzigd, wat onjuist was.
  • Het controlepunt -commando & quot; git fast-import & quot; heeft geen updates naar refs en markeringen doorgespoeld tenzij er ten minste één object is gemaakt sinds het laatste controlepunt, dat is gecorrigeerd, omdat deze dingen kunnen gebeuren zonder dat er een nieuw object wordt gemaakt.
  • De scripts om TravisCI te besturen zijn opnieuw georganiseerd en vervolgens is een optimalisatie om uitgavencycli in een filiaal waarvan de tip is getagd, te implementeren geïmplementeerd.
  • & quot; git fetch: & quot; staat een objectnaam aan de kant toe wanneer de andere kant een dergelijk verzoek aanvaardt sinds Git v2.5, maar de documentatie werd achtergelaten.
  • Een regressie in 2.11 waardoor de code voor het lezen van de lijst met alternatieve objectarchieven die het einde van de reeks overschrijden, is verholpen.

Wat is nieuw in versie 2.15.1:

  • Een helperfunctie om een ​​enkele gehele regel in strbuf te lezen, heeft ten onrechte een OOM-fout bij EOF onder bepaalde omstandigheden veroorzaakt, die is verholpen.
  • Naast & quot; cc: # cruft & quot ;, & quot; cc: a@dd.re.ss # cruft & quot; werd geleerd om & quot; git send-email & quot; als een geldige manier om te vertellen dat het ook een carbon-kopie moet sturen in de trailersectie.
  • Regressie tot & quot; gitk --bisect & quot; door een recente update.
  • Anders dan & quot; git commit-tree & lt; bestand & quot ;, & quot; git commit-tree -F file & quot; heeft de inhoud van het bestand niet woordelijk doorgegeven en in plaats daarvan een onvolledige regel aan het einde ingevuld, als deze bestaat. Dit laatste is bijgewerkt om het gedrag van het eerste te evenaren.
  • & quot; git archive & quot ;, vooral wanneer het wordt gebruikt met pathspec, heeft het een lege map opgeslagen in zijn uitvoer, hoewel Git dit zelf nooit doet. Dit is opgelost.
  • Foutcorrectie van API's die toevallig ook waarschuwingen uit GCC onderdrukken.
  • & quot; git gc & quot; probeert te voorkomen dat tegelijkertijd twee instanties worden uitgevoerd door pid / host van en naar een vergrendelingsbestand te lezen en te schrijven; het gebruikte om een ​​onjuiste fscanf () -indeling te gebruiken tijdens het lezen, die is gecorrigeerd.
  • Er is ons geleerd dat we het niet leuk vinden & quot; echo -e & quot;.
  • Code cmp.std.c nitpick.
  • & quot; git beschrijven - match & quot; geleerd om meerdere patronen te nemen in v2.13 series, maar de feature negeerde de patronen na de eerste en werkte helemaal niet. Dit is opgelost.
  • & quot; git cat-file --textconv & quot; is onlangs begonnen met segfaulting, die is gecorrigeerd.
  • Het ingebouwde patroon om de & quot; functieheader & quot; te detecteren voor HTML kwam niet overeen met elementen zonder attributen, die zijn gecorrigeerd.
  • & quot; git mailinfo & quot; was los in het decoderen van geciteerde afdrukbare en geproduceerde garbage als de twee letters na het gelijkteken niet hexadecimaal zijn. Dit is opgelost.
  • De documentatie voor '-X' voor samenvoegingen is misleidend geschreven om aan te geven dat & quot; -s van hen & quot; bestaat, wat niet het geval is.
  • Geef de naam van ons systeem op als 'Git & quot; in de uitvoer van request-pull script.
  • Correcties voor een handvol geheugentoegangsproblemen geïdentificeerd door valgrind.
  • Backports een morele equivalent van de 2015-fix voor de poll-emulatie van de upstream gnulib om incidentele breuken op HPE NonStop te verhelpen.
  • In de & quot; - format = ... & quot; optie van de & quot; git for-each-ref & quot; opdracht (en zijn vrienden, d.w.z. de lijstmodus van & quot; git branch / tag & quot;) & quot;% (atom:) & quot; (bijvoorbeeld & quot;% (refname:) & quot ;, & quot;% (body:) & quot; gebruikt voor error out.) Behandel ze alsof de dubbele punt en een lege string die erop volgde er niet waren.
  • Gebruikers met & quot; color.ui = always & quot; in hun configuratie werden gebroken door een recente wijziging die loodgietersopdrachten maakte om aandacht aan hen te schenken, aangezien de patch intern werd aangemaakt door & quot; git add -p & quot; waren gekleurd (eh) en onbruikbaar gemaakt. Dit is opgelost.
  • & quot; git branch -M a b & quot; terwijl op een tak die volledig niet verwant is aan een tak a of tak b zich misdragen heeft wanneer meerdere werkboom in gebruik was. Dit is opgelost.
  • & quot; git fast-export & quot; met -M / -C optie uitgegeven & quot; kopiëren & quot; instructie op een pad dat tegelijkertijd wordt gewijzigd, wat onjuist was.
  • Het controlepunt -commando & quot; git fast-import & quot; heeft geen updates naar refs en markeringen doorgespoeld tenzij er ten minste één object is gemaakt sinds het laatste controlepunt, dat is gecorrigeerd, omdat deze dingen kunnen gebeuren zonder dat er een nieuw object wordt gemaakt.
  • De scripts om TravisCI te besturen zijn opnieuw georganiseerd en vervolgens is een optimalisatie om uitgavencycli in een filiaal waarvan de tip is getagd, te implementeren geïmplementeerd.
  • & quot; git fetch: & quot; staat een objectnaam aan de kant toe wanneer de andere kant een dergelijk verzoek aanvaardt sinds Git v2.5, maar de documentatie werd achtergelaten.
  • Een regressie in 2.11 waardoor de code voor het lezen van de lijst met alternatieve objectarchieven die het einde van de reeks overschrijden, is verholpen.

Wat is nieuw in versie 2.15.0:

  • Een helperfunctie om een ​​enkele gehele regel in strbuf te lezen, heeft ten onrechte een OOM-fout bij EOF onder bepaalde omstandigheden veroorzaakt, die is verholpen.
  • Naast & quot; cc: # cruft & quot ;, & quot; cc: a@dd.re.ss # cruft & quot; werd geleerd om & quot; git send-email & quot; als een geldige manier om te vertellen dat het ook een carbon-kopie moet sturen in de trailersectie.
  • Regressie tot & quot; gitk --bisect & quot; door een recente update.
  • Anders dan & quot; git commit-tree & lt; bestand & quot ;, & quot; git commit-tree -F file & quot; heeft de inhoud van het bestand niet woordelijk doorgegeven en in plaats daarvan een onvolledige regel aan het einde ingevuld, als deze bestaat. Dit laatste is bijgewerkt om het gedrag van het eerste te evenaren.
  • & quot; git archive & quot ;, vooral wanneer het wordt gebruikt met pathspec, heeft het een lege map opgeslagen in zijn uitvoer, hoewel Git dit zelf nooit doet. Dit is opgelost.
  • Foutcorrectie van API's die toevallig ook waarschuwingen uit GCC onderdrukken.
  • & quot; git gc & quot; probeert te voorkomen dat tegelijkertijd twee instanties worden uitgevoerd door pid / host van en naar een vergrendelingsbestand te lezen en te schrijven; het gebruikte om een ​​onjuiste fscanf () -indeling te gebruiken tijdens het lezen, die is gecorrigeerd.
  • Er is ons geleerd dat we het niet leuk vinden & quot; echo -e & quot;.
  • Code cmp.std.c nitpick.
  • & quot; git beschrijven - match & quot; geleerd om meerdere patronen te nemen in v2.13 series, maar de feature negeerde de patronen na de eerste en werkte helemaal niet. Dit is opgelost.
  • & quot; git cat-file --textconv & quot; is onlangs begonnen met segfaulting, die is gecorrigeerd.
  • Het ingebouwde patroon om de & quot; functieheader & quot; te detecteren voor HTML kwam niet overeen met elementen zonder attributen, die zijn gecorrigeerd.
  • & quot; git mailinfo & quot; was los in het decoderen van geciteerde afdrukbare en geproduceerde garbage als de twee letters na het gelijkteken niet hexadecimaal zijn. Dit is opgelost.
  • De documentatie voor '-X' voor samenvoegingen is misleidend geschreven om aan te geven dat & quot; -s van hen & quot; bestaat, wat niet het geval is.
  • Geef de naam van ons systeem op als 'Git & quot; in de uitvoer van request-pull script.
  • Correcties voor een handvol geheugentoegangsproblemen geïdentificeerd door valgrind.
  • Backports een morele equivalent van de 2015-fix voor de poll-emulatie van de upstream gnulib om incidentele breuken op HPE NonStop te verhelpen.
  • In de & quot; - format = ... & quot; optie van de & quot; git for-each-ref & quot; opdracht (en zijn vrienden, d.w.z. de lijstmodus van & quot; git branch / tag & quot;) & quot;% (atom:) & quot; (bijvoorbeeld & quot;% (refname:) & quot ;, & quot;% (body:) & quot; gebruikt voor error out.) Behandel ze alsof de dubbele punt en een lege string die erop volgde er niet waren.
  • Gebruikers met & quot; color.ui = always & quot; in hun configuratie werden gebroken door een recente wijziging die loodgietersopdrachten maakte om aandacht aan hen te schenken, aangezien de patch intern werd aangemaakt door & quot; git add -p & quot; waren gekleurd (eh) en onbruikbaar gemaakt. Dit is opgelost.
  • & quot; git branch -M a b & quot; terwijl op een tak die volledig niet verwant is aan een tak a of tak b zich misdragen heeft wanneer meerdere werkboom in gebruik was. Dit is opgelost.
  • & quot; git fast-export & quot; met -M / -C optie uitgegeven & quot; kopiëren & quot; instructie op een pad dat tegelijkertijd wordt gewijzigd, wat onjuist was.
  • Het controlepunt -commando & quot; git fast-import & quot; heeft geen updates naar refs en markeringen doorgespoeld tenzij er ten minste één object is gemaakt sinds het laatste controlepunt, dat is gecorrigeerd, omdat deze dingen kunnen gebeuren zonder dat er een nieuw object wordt gemaakt.
  • De scripts om TravisCI te besturen zijn opnieuw georganiseerd en vervolgens is een optimalisatie om uitgavencycli in een filiaal waarvan de tip is getagd, te implementeren geïmplementeerd.
  • & quot; git fetch: & quot; staat een objectnaam aan de kant toe wanneer de andere kant een dergelijk verzoek aanvaardt sinds Git v2.5, maar de documentatie werd achtergelaten.
  • Een regressie in 2.11 waardoor de code voor het lezen van de lijst met alternatieve objectarchieven die het einde van de reeks overschrijden, is verholpen.

Wat is nieuw in versie 2.14.1:

  • Deze release stuurt de fix door naar & quot; ssh: //..." URL van Git v2.7.6

Wat is nieuw in versie 2.9.3:

  • * Een helperfunctie die de inhoud van een commit-object overneemt en de onderwerpregel vindt, negeerde geen voorloopige lege regels, zoals gebruikelijk door andere codepaten. Laat het de leidende lege regels negeren om overeen te komen.
  • Git weet nog niet wat de inhoud van de index moet zijn voor een pad dat is toegevoegd met "git add -N", dus "git grep --cached" mag geen hits tonen (of tonen een gebrek aan hits, met -L ) in zo'n pad, maar die logica is niet van toepassing op "git grep", dwz zoeken in de werkende boomstructuren. Maar we hebben dit bij vergissing gedaan, wat is gecorrigeerd.
  • "git rebase -i --autostash" heeft de automatisch opgeslagen wijziging niet hersteld toen de bewerking werd afgebroken.
  • "git commit --amend --allow-empty-message -S" voor een commit zonder dat een bericht body verkeerd kan hebben geïdentificeerd waar de header van het commit-object eindigt.
  • Meer opwaarderupdates voor tekenreeksen die naar verwachting door de eindgebruiker letterlijk in de lettertypen met een vaste breedte worden getypt.
  • We hebben lange tijd een code in de code bij zich gehad waarin stond dat onze gekleurde uitvoer alleen zou werken als we fprintf / fputs op Windows gebruiken, wat de afgelopen jaren niet meer het geval is.
  • "gc.autoPackLimit" wanneer ingesteld op 1, mag niet opnieuw worden ingepakt wanneer er slechts één pakket is, maar de code is slecht geteld en heeft dit gedaan.
  • Een deel van "git am" had een excentrieke helperfunctie die spul van buiten "de zijne" noemde in tegenstelling tot het noemen van wat we "de onze" hebben, wat niet sekseneutraal was en ook inconsistent met de rest van het systeem waarin dingen van buitenaf worden gewoonlijk "theirs" genoemd in tegenstelling tot "de onze".
  • Het testraamwerk heeft een nieuw helper test_match_signal geleerd om te controleren of een exitcode wordt gedood door een verwacht signaal.
  • "git blame -M" heeft een enkele regel gemist die in het bestand is verplaatst.
  • Fix onlangs geïntroduceerde codepaths die betrokken zijn bij parallelle submodule-bewerkingen, die te vroeg oplezen, en CPU konden verspillen tijdens een poging om te schrijven onder een hoekcasus.
  • "git grep -i" is geleerd om case in niet-ascii-locales correct te vouwen.
  • Een test die "mktemp" zonder voorwaarden gebruikte, ontdekte dat het commando niet overal noodzakelijk beschikbaar is.
  • "git blame file" stond toe dat het geslacht van regels in de niet-gecommitteerde, niet-geaddeerde inhoud van "bestand" werd geïnspecteerd, maar het weigerde toen "bestand" niet in de huidige commit verscheen. Wanneer "bestand" is gemaakt door een bestaand bestand te hernoemen (maar de wijziging is niet doorgevoerd), was deze beperking onnodig krap.
  • "git add -N dir / file & amp; git write-tree" heeft een onjuiste boomstructuur gegenereerd als er zich nog andere paden in dezelfde map bevinden die sorteert achter "bestand".
  • "git fetch http: // user: pass @ host / repo ..." scrubde het userinfo gedeelte, maar "git push" deed dat niet.
  • Een eeuwenoude bug die "git diff --ignore-space-at-eol" heeft veroorzaakt, is opgelost.
  • "git notities samenvoegen" had een code om te zien of er een pad bestaat (en mislukt als dit het geval is) en opent dan het pad om te schrijven (als dat niet het geval is). Vervang deze door open met O_EXCL.
  • "git pack-objects" en "git index-pack" werken meestal met off_t als het gaat om de offset van objecten in een pakketbestand, maar er waren een handvol plaatsen die "unsigned long" gebruikten om die waarde vast te houden, waardoor tot een onbedoelde afkapping.
  • Recente update van "git daemon" probeert het KEEPALIVE op socket-niveau in te schakelen, maar wanneer het wordt gegenereerd via inetd, hoeft de standaardinvoerbestanddescriptor niet noodzakelijkerwijs op een socket te worden aangesloten. Onderdruk een ENOTSOCK-fout van setsockopt ().
  • Recent FreeBSD stopte met het beschikbaar maken van perl bij / usr / bin / perl; verander standaard het ingebouwde pad naar / usr / local / bin / perl op niet al te oude FreeBSD releases.
  • "git-status" heeft geleerd om "merge -abort" voor te stellen tijdens een conflicterende samenvoeging, net zoals het al suggereert "rebase -abort" tijdens een conflicterende rebase.
  • De .c / .h-bronnen zijn als zodanig gemarkeerd in ons .gitattributes-bestand, zodat "git diff -W" en vrienden beter zouden werken.
  • Bestaande door autoconf gegenereerde test voor de noodzaak om te koppelen met pthread library heeft niet alle functies gecontroleerd van pthread-bibliotheken; recente FreeBSD heeft sommige functies in libc maar niet in andere, en we dachten dat het koppelen met libc genoeg is als dat niet het geval is.
  • HTTP-daemontests toestaan ​​in Travis CI-tests.
  • Gebruikers van de API-functie parse_options_concat () moeten vooraf extra slots toewijzen en deze vullen met OPT_END () wanneer ze de set ondersteunde opties dynamisch willen bepalen, waardoor de code foutgevoelig en moeilijk leesbaar is. Dit is gecorrigeerd door de API te tweaken om een ​​nieuwe kopie van de array "struct option" toe te wijzen en terug te sturen.
  • Het gebruik van strbuf in "git rm" om bestandsnaam te maken om te verwijderen was een beetje suboptimaal, wat is opgelost.
  • "git commit --help" zei "--no-verify" gaat alleen over het overslaan van de pre-commit hook, en kan niet zeggen dat het ook de commit-msg hook heeft overgeslagen.
  • "git merge" in Git v2.9 is geleerd om te verbieden dat standaard een niet-verwante geschiedenis wordt samengevoegd, maar dat is precies het soort ding dat de "- join" -modus van "git subtree" (in contrib /) wil doen. "git subtree" is geleerd om de "--allow-unrelated-histories" optie te gebruiken om de standaard te negeren.
  • De bouwprocedure voor "git persistent-https" helper (in contrib /) is bijgewerkt, zodat deze kan worden gebouwd met recentere versies van Go.
  • Er is een optimalisatie gebruikt in "git diff $ treeA $ treeB" om een ​​reeds uitgecheckte kopie in de werkboom te lenen wanneer bekend is dat deze hetzelfde is als de klodder die wordt vergeleken, in de verwachting dat die open / mmap van dergelijke een bestand is sneller dan het te lezen vanuit het objectarchief, dat bestaat uit het oppompen en toepassen van delta. Dit is echter begonnen, zelfs wanneer de uitgecheckte kopie door de conversie van conversie naar git moet gaan (inclusief het schone filter), die het hele punt van de optimalisatie verslaat. De optimalisatie is uitgeschakeld wanneer de conversie noodzakelijk is.
  • "git -c grep.patternType = extended log - basic-regexp" misdragen omdat de interne API voor toegang tot de grep-machine niet goed was ontworpen.
  • Windows-poort mislukte in sommige tests in t4130, vanwege het ontbreken van een aantal verborgen waarden door de lstat (2) -emulatie.
  • De tekens in het label die voor tags / referenties voor commits in de uitvoer van "gitweb" worden weergegeven, zijn nu correct geëscaped voor de juiste HTML-uitvoer.
  • FreeBSD kan liegen wanneer gevraagd wordt van een map, waardoor de niet-traceerde cache-code terugvalt naar een langzaam pad, waardoor tests in t7063 mislukten omdat het het gedrag van het snelpad wilde verifiëren.
  • Squelch-compilerwaarschuwingen voor netmalloc (in compat /) bibliotheek.
  • De API-documentatie voor hashmap was onduidelijk of hashmap_entry zonder enige andere overweging veilig kan worden weggegooid. Stel dat het veilig is om dat te doen.
  • Niet-zo-recente herschrijving van "git am" die interne aanroepen van de commit-machines startte, had een onbedoelde regressie, in die zin dat, ongeacht het aantal seconden dat nodig was om veel patches toe te passen, de resulterende committer-tijdstempel voor de resulterende commits waren allemaal hetzelfde.
  • "git difftool ..." gestart in een submap kan de paden relatief ten opzichte van die map niet interpreteren, die is hersteld.

Wat is nieuw in versie 2.9.1:

  • Wanneer "git daemon" wordt uitgevoerd zonder - [init-] timeout gespecificeerd, kan een verbinding van een client die stilletjes offline gaat, lang blijven hangen, en middelen verspillen. De KEEPALIVE op socketniveau is ingeschakeld om het OS in staat te stellen dergelijke mislukte verbindingen op te merken.
  • De opdrachten in de `git log` -familie nemen% C (automatisch) in een reeks met een aangepast formaat. Hierdoor wordt de kleur onvoorwaardelijk ingeschakeld, waarbij - geen kleur of met --color = auto wordt genegeerd wanneer de uitvoer niet is verbonden met een tty; dit is gecorrigeerd om het formaat echt als "automatisch" te laten werken.
  • "git rev-list --count" wiens looplengte beperkt is met de "-n" optie werkte niet goed met het geoptimaliseerde tellen om naar de bitmapindex te kijken.
  • "git show -W" (breid hunks uit om de gehele functie te dekken, begrensd door lijnen die overeenkomen met het patroon "funcname") dat wordt gebruikt om het volledige bestand weer te geven wanneer een wijziging aan het einde van het bestand een volledige functie heeft toegevoegd, die is opgelost.
  • De documentatieset is bijgewerkt, zodat letterlijke opdrachten, configuratievariabelen en omgevingsvariabelen consistent worden gezet in lettertypen met een vaste breedte en vet in manpagina's.
  • "git svn propset" -subopdracht die in 2,3 dagen is toegevoegd, is nu gedocumenteerd.
  • De documentatie probeert consistent "GPG" te spellen; wanneer wordt verwezen naar de naam van het specifieke programma, wordt "gpg" gebruikt.
  • "git reflog" is gestopt bij het zien van een item dat verwijst naar een branch creation-gebeurtenis (ook bekend als "ongeboren"), waardoor het lijkt alsof de reflog is afgekapt.
  • De script-script git-prompt (in contrib /) was niet vriendelijk voor degenen die "set -u" gebruiken, die is gecorrigeerd.
  • Een codepath dat alloca (3) heeft gebruikt om een ​​onbegrensde hoeveelheid gegevens op de stapel te plaatsen, is bijgewerkt om dit te voorkomen.
  • "git update-index --add - chmod = + x file" kan bruikbaar zijn als een escape-uitkomst, maar niet vriendelijk om te forceren voor mensen die het wel regelmatig moeten gebruiken. "git add --chmod = + x file" kan in plaats daarvan worden gebruikt.
  • Bouw verbeteringen voor gnome-keyring (in contrib /)
  • "git status" wordt gebruikt om "werkmap" te zeggen als het "werkende boom" betekent.
  • Opmerkingen over het slecht functioneren van FreeBSD-shells zijn verduidelijkt met het versienummer (9.x en eerder zijn verbroken, nieuwere versies zijn in orde).
  • "git cherry-pick A" werkte aan een ongeboren tak, maar "git cherry-pick A..B" deed dat niet.
  • "git add -i / -p" geleerd ter ere van diff.compactionHeuristische experimentele knop, zodat de gebruiker op dezelfde split kan werken als "git diff" -uitvoer.
  • "log --graph --format =" heeft geleerd dat "% & gt; | (N)" de breedte aangeeft relatief aan de linkerrand van de terminal, niet ten opzichte van het gebied om tekst te tekenen die zich rechts van de voorouders bevindt -grafiek sectie. Het accepteert nu ook een negatieve N, wat betekent dat de kolomlimiet relatief is ten opzichte van de rechterrand.
  • De eigendomsregel voor het geheugen dat verwijzingen bevat om te worden opgehaald in "git fetch" was fout, dat is opgeruimd.
  • "git bisect" maakt een interne aanroep naar "git diff-tree" wanneer bisectie de boosdoener vindt, maar deze aanroep initialiseerde de gegevensstructuur niet om deze correct door te geven aan de diff-tree API.
  • Formaten van de verschillende gegevens (en hoe deze te valideren) waar we de GPG-handtekening gebruiken, zijn gedocumenteerd.
  • Verhelp een onbedoelde regressie in v2.9 die "kloon - diepte" breekt die terugkeert naar submodules door de submodules ook ondiep te laten klonen, wat voor veel serverinstanties die stroomopwaarts van de submodules host niet is voorbereid.
  • Los onnodig verspilling op in het idiomatische gebruik van ': $ {VAR = standaard}' om de standaardwaarde in te stellen, zonder deze tussen dubbele aanhalingstekens te plaatsen.
  • Sommige platformspecifieke code bevat niet-ANSI-strikte declaraties van C-functies die geen parameters in beslag nemen en die zijn gecorrigeerd.
  • De interne code die wordt gebruikt om de lokale tijdzone-offset weer te geven, is niet voorbereid op het verwerken van tijdstempels na jaar 2100 en gaf de beller een valse offsetwaarde. Gebruik in plaats daarvan een meer goedaardige +0000 en laat "git log" in een dergelijk geval gaan in plaats van af te breken.
  • Eén van de vier aanroepingen van readlink (1) in onze testsuite is herschreven, zodat de test zonder opdracht kan worden uitgevoerd op systemen (andere bevinden zich in valgrind-testraamwerk en t9802).
  • t / perf behoeften / usr / bin / tijd met GNU-uitbreiding; het aanroepen van het is bijgewerkt naar "gtime" op Darwin.
  • Een fout, die "git p4" veroorzaakte tijdens het uitvoeren van de uitgebreide modus om paden te rapporteren die ten onrechte zijn weggelaten vanwege het voorvoegsel van de branch, is verholpen; het bevel zei "Het negeren van dossier buiten prefix" voor wegen die _inside _.
  • De documentatie op het hoogste niveau "git help git" wees nog steeds op de documentatieset die wordt gehost bij de inmiddels niet meer gebruikte google-coderepository. Werk het in plaats daarvan naar https://git.github.io/htmldocs/git.html.

Wat is nieuw in versie 2.9.0:



Nieuw in GIT 2.8.1 (5 april 2016)

Wat is nieuw in versie 2.8.1:

  • "make rpmbuild" -doel werd verbroken omdat zijn invoer, git.spec.in, niet werd bijgewerkt om overeen te komen met een bestand dat het beschrijft en dat onlangs is hernoemd. Dit is opgelost.

Wat is nieuw in versie 2.7.3:

  • Traditioneel worden de testen die opdrachten uitproberen die werken op de inhoud in de werkboom benoemd met "worktree" in hun bestandsnamen, maar met de recente toevoeging van "git worktree" subopdracht, waarvan de tests ook op dezelfde manier worden genoemd, heeft het moeilijker worden om ze uit elkaar te houden. De traditionele tests zijn hernoemd om in plaats daarvan de 'werkboom' te gebruiken in een poging om ze te onderscheiden.
  • Veel codepaten vergeten om de retourwaarde van git_config_set () te controleren; de functie is gemaakt om te sterven () om te zorgen dat we niet doorgaan wanneer het instellen van een configuratievariabele is mislukt.
  • De afhandeling van fouten tijdens het schrijven naar ons interne asynchrone proces is robuuster gemaakt, wat de schilfering in onze tests vermindert.
  • "git show 'HEAD: Foo [BAR] Baz'" interpreteerde het argument niet als een rev, d.w.z. het object met de naam van het pad met jokertekens in een boomobject.
  • "git rev-parse --git-common-dir" gebruikt in de functie worktree indien gebruikt vanuit een submap.
  • Het subcommando "v (iew)" van de interactieve opdracht "git am -i" is in de tijdcode 2.6.0 gebroken toen de opdracht in C werd herschreven.
  • "git merge-tree" gebruikt om mishandeling "beide kanten toegevoegd" conflict met zijn eigen "maak een nep-voorouderbestand dat de gemeenschappelijke delen heeft van wat beide partijen hebben toegevoegd en doe een drieweg samenvoeg" -logica; dit is bijgewerkt om de gebruikelijke "samenvoeging in drie richtingen met een lege blob als de nep-methode voor gemeenschappelijke voorouderbestanden" in de rest van het systeem te gebruiken.
  • De eigenaarschap van het geheugen van fill_textconv () API, die een beetje lastig was, is iets beter gedocumenteerd.
  • De documentatie vermeldde niet duidelijk dat de 'eenvoudige' modus nu de standaardinstelling is voor 'git push' wanneer de push.default-configuratie niet is ingesteld.
  • Recente versies van GNU grep zijn kieskeuriger als hun invoer willekeurige binaire gegevens bevat, die sommige van onze tests gebruiken. Herschrijf de tests om het probleem te omzeilen.
  • Een hulpfunctie "git submodule" gebruikt sinds v2.7.0 om de modules weer te geven die overeenkomen met het pathspec-argument dat aan zijn subopdrachten is gegeven (bijvoorbeeld "submodule add") is opgelost.
  • "git config section.var value" om een ​​waarde in het configuratiebestand van de repository in te stellen, is mislukt toen het buiten een repository werd uitgevoerd, maar de reden niet correct vermeldde.
  • De code om de packgegevens te lezen met behulp van de offsets die zijn opgeslagen in het idx-bestand van het pakket, is zorgvuldiger gecontroleerd op de geldigheid van de gegevens in de idx.

Wat is nieuw in versie 2.7.2:

  • Het laagliggende samenvoegmechanisme is geleerd CRLF-lijnbeëindiging te gebruiken bij het invoegen van conflictmarkeringen in samengevoegde inhoud die zelf CRLF-regel beëindigd zijn.
  • "git worktree" had een gebroken code die probeerde mogelijke inconsistentie te corrigeren die het gevolg is van eindgebruikers die een worktree naar verschillende plaatsen verplaatsen zonder Git te vertellen (de originele repository moet back-points naar zijn werkrangen onderhouden, maar "mv" gerund door eindgebruikers die niet bekend zijn met dat feit, zal ze uiteraard niet aanpassen), waardoor de situatie erger werd als ze werden geactiveerd.
  • "git push --force-with-lease" is geleerd om te rapporteren of de push nodig is om geforceerd (of snel doorgestuurd) te worden.
  • Het geëmuleerde "ja" -commando dat in onze testscripts wordt gebruikt, is aangepast om niet te veel tijd te spenderen aan het genereren van onnodige uitvoer die niet wordt gebruikt, om diegenen te helpen die op Windows testen waar het niet zou stoppen totdat het de pijpbuffer heeft gevuld gebrek aan SIGPIPE.
  • De vimdiff-backend voor "git mergetool" is aangepast om rangschikkingen in de volgorde te rangschikken die overeenkomt met de verwachting van de meerderheid van de mensen die van links naar rechts lezen, vervolgens van boven naar beneden wijst en buffers toewijst 1 2 3 4 "mentaal" naar lokale base remote merge windows op basis van die volgorde.
  • De documentatie voor "git clean" is gecorrigeerd; het vermeldde dat .git / modules / * verwijderd werden door twee "-f" te geven, wat nooit het geval was.
  • Paden waarover de index is geïnformeerd met "add -N" staan ​​nog niet helemaal in de index, maar een paar commando's gedroegen zich alsof ze al op een schadelijke manier zijn.
  • Bevat ook kleine documentatie en testupdates.

Wat is nieuw in versie 2.6.4:

  • Het "configure" -script testte niet correct naar -lpthread, waardoor sommige linkers worden verstoord.
  • Ondersteuning toevoegen voor het praten over http / https via sokken proxy.
  • Portabiliteitscorrectie voor Windows, die $ SHELL-variabele kan herschrijven met niet-POSIX-paden.
  • We staan ​​nu consequent toe dat alle hooks hun standaardinvoer negeren, in plaats van te hebben geklaagd over SIGPIPE.
  • Fix shell citeren in contrib script.
  • Portability-fix testen voor een onderwerp in v2.6.1.
  • Tilde-uitbreiding toestaan ​​in sommige http-configuratievariabelen.
  • Geef een nuttig speciaal geval "diff / show --word-diff-regex =." als een voorbeeld in de documentatie.
  • Fix voor een corner-case in filtertak.
  • Laat git-p4 werken op een vrijstaand hoofd.
  • Verduidelijking van de documentatie voor "negeren van cheques" zonder "- verbose".
  • Net zoals de werkende boomstructuur wordt opgeschoond wanneer de gebruiker de verzending annuleert in P4Smit.applyCommit (), ruim de rommel op als "p4 submit" mislukt.
  • Het hebben van een overgebleven .idx-bestand zonder bijbehorend .pack-bestand in de repository doet de prestaties pijn; "git gc" heeft geleerd ze te snoeien.
  • De code om de werkende boomstructuur van de tijdelijke map voor te bereiden voor de "dir-diff" -functie was vergeten dat symbolische links niet gekopieerd (of gesymlinked) naar het tijdelijke gebied hoeven te zijn, omdat de code al speciaal gevallen en overschrijft hen. Bovendien was het verkeerd om te proberen de objectnaam te berekenen van het doelwit van de symbolische link, die misschien niet eens bestaat of een directory kan zijn.
  • Er was geen manier om een ​​geconfigureerde rebase.autostash-variabele te verslaan van de opdrachtregel, want "git rebase --no-autostash" ontbrak.
  • Sta "git interpret-trailers" toe om buiten een Git repository te werken.
  • Produceer de juiste "vuile" markering voor shell-prompts, zelfs wanneer we ons op een wees- of een ongeboren tak bevinden.
  • Sommige hoekgevallen zijn opgelost in string-matching gedaan in "git-status".
  • De veelvoorkomende crypto-implementatie van Apple van SHA1_Update () kost niet meer dan 4 GB per keer, en we hebben nu een oplossing voor de compilatie.

Wat is nieuw in versie 2.5.3:

  • De experimentele niet-traceerde cache-functie had fouten wanneer paden met een paar niveaus van submappen betrokken waren.
  • Recente versies van scripted "git am" hebben een prestatieregressie in "git am - skip" codepath, die niet langer bestaat in de ingebouwde versie op het 'master'-front. Verhelp de regressie in de laatste gescripte versie die verschijnt in 2.5.x onderhoudsspoor en ouder.

Wat is nieuw in versie 2.4.6:

  • "git fetch --depth =" en "git clone --depth =" hebben een verzoek tot ondiepe overdracht zelfs naar een upload-pack uitgegeven dat de functionaliteit niet ondersteunt.
  • "git fsck" wordt gebruikt om ontbrekende of ongeldige objecten te negeren die zijn geregistreerd in de ref.
  • De tcsh-aanvulling schrijft een bash-script, maar dat zou mislukken voor gebruikers met noclobber-set.
  • Recente Mac OS X-updates breken de logica om te detecteren dat het apparaat op netstroom werkt in het voorbeeld-pre-auto-gc-script.
  • "git format-patch --ignore-if-upstream A..B" vond het niet leuk om tags te krijgen als boundary commits.
  • Bevat ook typofixes, documentatie-updates en triviale code
  • clean-ups.

Wat is nieuw in versie 2.4.2:

  • "git rev-list --objects $ old --not --all" om te zien of alles dat bereikbaar is vanaf $ old al verbonden is met de bestaande refs was erg inefficiënt.
  • "hash-object - letterlijk" dat in v2.2 werd geïntroduceerd, was niet bereid om een ​​heel lange naam van het objecttype te nemen.
  • "git rebase --quiet" was niet helemaal stil als er niets te doen was.
  • De voltooiing van de parameterwaarde 'log --decorate =' was onjuist.
  • "filter-branch" corrupte commit-logbericht dat eindigt met een onvolledige regel op platforms met enkele "sed" -implementaties die zo'n regel vernietigen. Werk het rond door te vermijden "sed" te gebruiken.
  • "git daemon" kan niet bouwen vanuit de bron onder de NO_IPV6-configuratie (regressie in 2.4).
  • "git stash pop / apply" vergeten om ervoor te zorgen dat niet alleen de werkende structuur schoon is maar ook de index schoon is. Dit laatste is belangrijk omdat een stash-applicatie kan conflicteren en de index zal worden gebruikt voor conflictoplossing.
  • We hebben $ GIT_EXEC_PATH geadviseerd en het pad "git" is geïnstalleerd in (meestal "/ usr / bin") naar $ PATH bij het oproepen van subprogramma's en haken bijna eeuwig, maar de oorspronkelijke use case die de laatste probeerde te ondersteunen was semi -bogus (dwz installeer git naar / opt / foo / git en voer het uit zonder / opt / foo op $ PATH), en wat nog belangrijker is, het is steeds minder relevant geworden naarmate Git meer mainstream werd (dat wil zeggen dat de gebruikers _want_ zouden hebben het op hun $ PATH). Stop met het voorbereiden van het pad waarin "git" is geïnstalleerd op $ PATH van gebruikers, omdat dit de zoekvolgorde van de opdracht zou beïnvloeden die mensen afhankelijk zijn (ze houden bijvoorbeeld niet van versies van programma's die geen verband houden met Git in / usr / bin en willen overschrijf ze door verschillende in / usr / local / bin te hebben en laat de laatste map eerder in hun $ PATH).
  • Bevat ook typofixes, documentatie-updates en triviale codeopruimingen.

Vergelijkbare software

Scunch
Scunch

12 May 15

git-link
git-link

14 Apr 15

bloom
bloom

20 Feb 15

NiceCommits
NiceCommits

20 Feb 15

Reacties op GIT

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!