GIT

Screenshot der Software:
GIT
Softwarebeschreibung:
Version: 2.16.0 Aktualisiert
Upload-Datum: 20 Jan 18
Entwickler: Junio C Hamano
Lizenz: Frei
Popularität: 252

Rating: 2.5/5 (Total Votes: 2)

Git ist eines der am weitesten verbreiteten verteilten Versionskontrollsysteme, die von Entwicklern auf der ganzen Welt als VCS-Dienst Nummer eins beschrieben werden. Es läuft nur vom Terminal, aber mehrere Front-Ends sind zum Download verfügbar.

Es ist eine kostenlose und Open-Source-Versionskontrollsystemanwendung, die sowohl große als auch kleine Projekte mit maximaler Effizienz und Geschwindigkeit verarbeiten kann. Das Programm kann leicht als klein, schnell und verteilt beschrieben werden.


Befehlszeilenoptionen

Das Programm enthält eine Handvoll Befehle, die von Anfang an leicht in Erinnerung bleiben. Alle Operationen werden lokal ausgeführt und wurden für die Arbeit am Linux-Kernel entwickelt.

Enthaltene Befehle sind add, bisect, branch, checkout, klonen, commit, diff, fetch, grep, init, log, merge, mv, ziehen, push, rebase, reset, rm, show, status und tag. Sie können leicht lernen, was jeder Befehl tut, indem Sie den Befehl git --help aus einem Terminalfenster ausführen.


Funktionen auf einen Blick

Bei der Verwendung von Git können Benutzer Dateien hinzufügen, Zweige oder Pfade auschecken, Repositorys klonen, leere Git-Repositories erstellen, mehrere Entwicklungshistorien zusammenführen, den Status des Arbeitsbaums anzeigen, Änderungen aufzeichnen sowie erstellen, auflisten oder lösche Zweige.

Außerdem ermöglicht die Anwendung den Benutzern, Änderungen zwischen Commits und Arbeitsbäumen anzuzeigen, Zeilen, die einem Muster entsprechen, zu drucken, Commit-Protokolle anzuzeigen, Refs und Objekte herunterzuladen, Dateien, Symlinks und Verzeichnisse umzubenennen oder zu verschieben, Remote-Refs zu aktualisieren und zu entfernen Dateien aus einem funktionierenden Baum.


Verschiedene grafische Front-Ends existieren

Auch wenn es sich um eine reine Befehlszeilensoftware handelt, stehen verschiedene grafische Benutzeroberflächen zur Verfügung, darunter git-cola, SmartGit, GitEye, kichern und gitg. Das Projekt übertrifft SCM (Software Configuration Management) Dienstprogramme wie CVS, Subversion, ClearCase und Perforce, indem es günstige lokale Verzweigungen, mehrere Workflows und bequeme Staging-Bereiche bietet.


Endeffekt

Zusammenfassend ist Git ein kostenloses Versionskontrollsystem, das eine blitzschnelle Leistung bietet, einfach zu erlernen ist und einen sehr geringen Platzbedarf hat. Mit Git können Sie reibungslosen Kontextwechsel, rollenbasierte Codezeilen, Feature-basierten Workflow und Einweg-Experimente durchführen.

Was ist neu in dieser Version:

p>

  • Eine Hilfsfunktion zum Lesen einer ganzen Zeile in strbuf hat fälschlicherweise einen OOM-Fehler bei EOF unter bestimmten Bedingungen ausgelöst, der behoben wurde.
  • Zusätzlich zu "cc: # cruft", "cc: a@dd.re.ss # cruft" wurde gelehrt, & quot; git send-email & quot; als eine gültige Möglichkeit, es zu sagen, dass es auch eine Kopie in der Anhängerabteilung senden muss.
  • Fix Regression zu "gitk --bisect" durch ein aktuelles Update.
  • Im Gegensatz zu "git commit-tree & lt; Datei & quot ;, git commit-tree -F-Datei & quot; den Inhalt der Datei nicht wörtlich weitergegeben und stattdessen am Ende eine unvollständige Zeile ausgefüllt, falls vorhanden. Letzteres wurde aktualisiert, um dem Verhalten des ersteren zu entsprechen.
  • & quot; git archive & quot; speichert, insbesondere wenn es mit pathspec verwendet wird, ein leeres Verzeichnis in seiner Ausgabe, obwohl Git dies niemals tut. Dies wurde behoben.
  • API-Fehlerkorrektur, die auch Warnungen vom GCC unterdrückt.
  • & quot; git gc & quot; versucht zu vermeiden, dass zwei Instanzen gleichzeitig ausgeführt werden, indem pid / host von und in eine Sperrdatei gelesen und geschrieben wird; Früher verwendete es beim Lesen ein falsches fscanf () - Format, das korrigiert wurde.
  • Der Testlinter wurde gelehrt, dass wir "echo -e" nicht mögen.
  • Code cmp.std.c nitpick.
  • & quot; git beschreiben - match & quot; gelernt, mehrere Muster in v2.13 Serie zu nehmen, aber die Funktion ignoriert die Muster nach dem ersten und hat überhaupt nicht funktioniert. Dies wurde behoben.
  • & quot; git cat-file --textconv & quot; Kürzlich wurde Segfaulting gestartet, was korrigiert wurde.
  • Das eingebaute Muster zum Erkennen des "Funktions-Headers" für HTML nicht .. Elemente ohne Attribute, die behoben wurde.
  • & quot; git mailinfo & quot; Bei der Dekodierung von zitierten druckbaren und produzierten Datenträgern war es locker, wenn die beiden Buchstaben nach dem Gleichheitszeichen nicht hexadezimal sind. Dies wurde behoben.
  • Die Dokumentation für "-X" für Zusammenführungen wurde irreführend geschrieben, um darauf hinzuweisen, dass & ldquor; -s ihre "& quot; existiert, was nicht der Fall ist.
  • Buchstabieren Sie den Namen unseres Systems als & quot; Git & quot; in der Ausgabe von Request-Pull-Skript.
  • Behebt einige wenige Speicherzugriffsprobleme, die durch valgrind identifiziert wurden.
  • Backports eine moralische Äquivalenz von 2015 zu der Poll-Emulation von der Upstream-gnulib, um gelegentliche Brüche auf HPE NonStop zu beheben.
  • Im & quot; - format = ... & quot; die Option "git for-each-ref" Befehl (und seine Freunde, d. h. der Auflistungsmodus von "git branch / tag"), "% (atom:)" (z. B. "% (refname:)", "% (body:)" verwendet, um Fehler zu vermeiden. Behandeln Sie sie stattdessen so, als ob der Doppelpunkt und eine darauf folgende leere Zeichenfolge nicht vorhanden wären.
  • Benutzer mit & quot; color.ui = immer & quot; in ihrer Konfiguration wurden durch eine kürzliche Änderung, die Sanitär-Befehle gemacht, um sie zu beachten, als der Patch intern erstellt von "git add -p". wurden gefärbt (heh) und unbrauchbar gemacht. Dies wurde behoben.
  • "git branch -M a b" während in einem Zweig, der zu keinem Zweig a oder Zweig b völlig unabhängig ist, sich ein Fehler ergab, wenn mehrere Arbeitsbäume verwendet wurden. Dies wurde behoben.
  • & quot; git schnell-export & quot; mit -M / -C Option ausgegeben "kopieren" Anweisung auf einem Pfad, der gleichzeitig geändert wird, was falsch war.
  • Der Prüfpunktbefehl & quot; git fast-import & quot; Aktualisierungen für Refs und Markierungen wurden nicht gelöscht, es sei denn, es wurde mindestens ein Objekt seit dem letzten Checkpoint erstellt, das korrigiert wurde, da diese Dinge passieren können, ohne dass ein neues Objekt erstellt wird.
  • Die Scripts, die TravisCI antreiben, wurden neu organisiert und dann wurde eine Optimierung implementiert, um die Ausgabe von Zyklen in einem Zweig zu vermeiden, dessen Tip markiert wurde.
  • & quot; git fetch: & quot; erlaubt einen Objektnamen auf der Seite, wenn die andere Seite eine solche Anfrage seit Git v2.5 akzeptiert, aber die Dokumentation wurde veraltet gelassen.
  • Eine Regression in 2.11, bei der der Code zum Lesen der Liste der alternativen Objektspeicher das Ende der Zeichenkette überschritten hat, wurde behoben.

Was ist neu in Version 2.15.1:

  • Eine Hilfsfunktion zum Lesen einer ganzen Zeile in strbuf hat fälschlicherweise einen OOM-Fehler bei EOF unter bestimmten Bedingungen ausgelöst, der behoben wurde.
  • Zusätzlich zu "cc: # cruft", "cc: a@dd.re.ss # cruft" wurde gelehrt, & quot; git send-email & quot; als eine gültige Möglichkeit, es zu sagen, dass es auch eine Kopie in der Anhängerabteilung senden muss.
  • Fix Regression zu "gitk --bisect" durch ein aktuelles Update.
  • Im Gegensatz zu "git commit-tree & lt; Datei & quot ;, git commit-tree -F-Datei & quot; den Inhalt der Datei nicht wörtlich weitergegeben und stattdessen am Ende eine unvollständige Zeile ausgefüllt, falls vorhanden. Letzteres wurde aktualisiert, um dem Verhalten des ersteren zu entsprechen.
  • & quot; git archive & quot; speichert, insbesondere wenn es mit pathspec verwendet wird, ein leeres Verzeichnis in seiner Ausgabe, obwohl Git dies niemals tut. Dies wurde behoben.
  • API-Fehlerkorrektur, die auch Warnungen vom GCC unterdrückt.
  • & quot; git gc & quot; versucht zu vermeiden, dass zwei Instanzen gleichzeitig ausgeführt werden, indem pid / host von und in eine Sperrdatei gelesen und geschrieben wird; Früher verwendete es beim Lesen ein falsches fscanf () - Format, das korrigiert wurde.
  • Der Testlinter wurde gelehrt, dass wir "echo -e" nicht mögen.
  • Code cmp.std.c nitpick.
  • & quot; git beschreiben - match & quot; gelernt, mehrere Muster in v2.13 Serie zu nehmen, aber die Funktion ignoriert die Muster nach dem ersten und hat überhaupt nicht funktioniert. Dies wurde behoben.
  • & quot; git cat-file --textconv & quot; Kürzlich wurde Segfaulting gestartet, was korrigiert wurde.
  • Das eingebaute Muster zum Erkennen des "Funktions-Headers" für HTML nicht .. Elemente ohne Attribute, die behoben wurde.
  • & quot; git mailinfo & quot; Bei der Dekodierung von zitierten druckbaren und produzierten Datenträgern war es locker, wenn die beiden Buchstaben nach dem Gleichheitszeichen nicht hexadezimal sind. Dies wurde behoben.
  • Die Dokumentation für "-X" für Zusammenführungen wurde irreführend geschrieben, um darauf hinzuweisen, dass & ldquor; -s ihre "& quot; existiert, was nicht der Fall ist.
  • Buchstabieren Sie den Namen unseres Systems als & quot; Git & quot; in der Ausgabe von Request-Pull-Skript.
  • Behebt einige wenige Speicherzugriffsprobleme, die durch valgrind identifiziert wurden.
  • Backports eine moralische Äquivalenz von 2015 zu der Poll-Emulation von der Upstream-gnulib, um gelegentliche Brüche auf HPE NonStop zu beheben.
  • Im & quot; - format = ... & quot; die Option "git for-each-ref" Befehl (und seine Freunde, d. h. der Auflistungsmodus von "git branch / tag"), "% (atom:)" (z. B. "% (refname:)", "% (body:)" verwendet, um Fehler zu vermeiden. Behandeln Sie sie stattdessen so, als ob der Doppelpunkt und eine darauf folgende leere Zeichenfolge nicht vorhanden wären.
  • Benutzer mit & quot; color.ui = immer & quot; in ihrer Konfiguration wurden durch eine kürzliche Änderung, die Sanitär-Befehle gemacht, um sie zu beachten, als der Patch intern erstellt von "git add -p". wurden gefärbt (heh) und unbrauchbar gemacht. Dies wurde behoben.
  • "git branch -M a b" während in einem Zweig, der zu keinem Zweig a oder Zweig b völlig unabhängig ist, sich ein Fehler ergab, wenn mehrere Arbeitsbäume verwendet wurden. Dies wurde behoben.
  • & quot; git schnell-export & quot; mit -M / -C Option ausgegeben "kopieren" Anweisung auf einem Pfad, der gleichzeitig geändert wird, was falsch war.
  • Der Prüfpunktbefehl & quot; git fast-import & quot; Aktualisierungen für Refs und Markierungen wurden nicht gelöscht, es sei denn, es wurde mindestens ein Objekt seit dem letzten Checkpoint erstellt, das korrigiert wurde, da diese Dinge passieren können, ohne dass ein neues Objekt erstellt wird.
  • Die Scripts, die TravisCI antreiben, wurden neu organisiert und dann wurde eine Optimierung implementiert, um die Ausgabe von Zyklen in einem Zweig zu vermeiden, dessen Tip markiert wurde.
  • & quot; git fetch: & quot; erlaubt einen Objektnamen auf der Seite, wenn die andere Seite eine solche Anfrage seit Git v2.5 akzeptiert, aber die Dokumentation wurde veraltet gelassen.
  • Eine Regression in 2.11, bei der der Code zum Lesen der Liste der alternativen Objektspeicher das Ende der Zeichenkette überschritten hat, wurde behoben.

Was ist neu in Version 2.15.0:

  • Eine Hilfsfunktion zum Lesen einer ganzen Zeile in strbuf hat fälschlicherweise einen OOM-Fehler bei EOF unter bestimmten Bedingungen ausgelöst, der behoben wurde.
  • Zusätzlich zu "cc: # cruft", "cc: a@dd.re.ss # cruft" wurde gelehrt, & quot; git send-email & quot; als eine gültige Möglichkeit, es zu sagen, dass es auch eine Kopie in der Anhängerabteilung senden muss.
  • Fix Regression zu "gitk --bisect" durch ein aktuelles Update.
  • Im Gegensatz zu "git commit-tree & lt; Datei & quot ;, git commit-tree -F-Datei & quot; den Inhalt der Datei nicht wörtlich weitergegeben und stattdessen am Ende eine unvollständige Zeile ausgefüllt, falls vorhanden. Letzteres wurde aktualisiert, um dem Verhalten des ersteren zu entsprechen.
  • & quot; git archive & quot; speichert, insbesondere wenn es mit pathspec verwendet wird, ein leeres Verzeichnis in seiner Ausgabe, obwohl Git dies niemals tut. Dies wurde behoben.
  • API-Fehlerkorrektur, die auch Warnungen vom GCC unterdrückt.
  • & quot; git gc & quot; versucht zu vermeiden, dass zwei Instanzen gleichzeitig ausgeführt werden, indem pid / host von und in eine Sperrdatei gelesen und geschrieben wird; Früher verwendete es beim Lesen ein falsches fscanf () - Format, das korrigiert wurde.
  • Der Testlinter wurde gelehrt, dass wir "echo -e" nicht mögen.
  • Code cmp.std.c nitpick.
  • & quot; git beschreiben - match & quot; gelernt, mehrere Muster in v2.13 Serie zu nehmen, aber die Funktion ignoriert die Muster nach dem ersten und hat überhaupt nicht funktioniert. Dies wurde behoben.
  • & quot; git cat-file --textconv & quot; Kürzlich wurde Segfaulting gestartet, was korrigiert wurde.
  • Das eingebaute Muster zum Erkennen des "Funktions-Headers" für HTML nicht .. Elemente ohne Attribute, die behoben wurde.
  • & quot; git mailinfo & quot; Bei der Dekodierung von zitierten druckbaren und produzierten Datenträgern war es locker, wenn die beiden Buchstaben nach dem Gleichheitszeichen nicht hexadezimal sind. Dies wurde behoben.
  • Die Dokumentation für "-X" für Zusammenführungen wurde irreführend geschrieben, um darauf hinzuweisen, dass & ldquor; -s ihre "& quot; existiert, was nicht der Fall ist.
  • Buchstabieren Sie den Namen unseres Systems als & quot; Git & quot; in der Ausgabe von Request-Pull-Skript.
  • Behebt einige wenige Speicherzugriffsprobleme, die durch valgrind identifiziert wurden.
  • Backports eine moralische Äquivalenz von 2015 zu der Poll-Emulation von der Upstream-gnulib, um gelegentliche Brüche auf HPE NonStop zu beheben.
  • Im & quot; - format = ... & quot; die Option "git for-each-ref" Befehl (und seine Freunde, d. h. der Auflistungsmodus von "git branch / tag"), "% (atom:)" (z. B. "% (refname:)", "% (body:)" verwendet, um Fehler zu vermeiden. Behandeln Sie sie stattdessen so, als ob der Doppelpunkt und eine darauf folgende leere Zeichenfolge nicht vorhanden wären.
  • Benutzer mit & quot; color.ui = immer & quot; in ihrer Konfiguration wurden durch eine kürzliche Änderung, die Sanitär-Befehle gemacht, um sie zu beachten, als der Patch intern erstellt von "git add -p". wurden gefärbt (heh) und unbrauchbar gemacht. Dies wurde behoben.
  • "git branch -M a b" während in einem Zweig, der zu keinem Zweig a oder Zweig b völlig unabhängig ist, sich ein Fehler ergab, wenn mehrere Arbeitsbäume verwendet wurden. Dies wurde behoben.
  • & quot; git schnell-export & quot; mit -M / -C Option ausgegeben "kopieren" Anweisung auf einem Pfad, der gleichzeitig geändert wird, was falsch war.
  • Der Prüfpunktbefehl & quot; git fast-import & quot; Aktualisierungen für Refs und Markierungen wurden nicht bereinigt, es sei denn, mindestens ein Objekt wurde seit dem letzten Checkpoint erstellt, der korrigiert wurde, da diese Dinge passieren können, ohne dass ein neues Objekt erstellt wird.
  • Die Scripts, die TravisCI antreiben, wurden neu organisiert und dann wurde eine Optimierung implementiert, um die Ausgabe von Zyklen in einem Zweig zu vermeiden, dessen Tip markiert wurde.
  • & quot; git fetch: & quot; erlaubt einen Objektnamen auf der Seite, wenn die andere Seite eine solche Anfrage seit Git v2.5 akzeptiert, aber die Dokumentation wurde veraltet gelassen.
  • Eine Regression in 2.11, bei der der Code zum Lesen der Liste der alternativen Objektspeicher das Ende der Zeichenkette überschritten hat, wurde behoben.

Was ist neu in Version 2.14.1:

  • Diese Version leitet den Fix für & quot; ssh: //..." URL von Git v2.7.6

Was ist neu in Version 2.9.3:

  • * Eine Hilfsfunktion, die den Inhalt eines Commit-Objekts übernimmt und die Betreffzeile findet, ignorierte führende Leerzeilen nicht, wie es bei anderen Codepathen üblich ist. Lassen Sie führende Leerzeilen ignorieren.
  • Git weiß nicht, was der Inhalt im Index für einen Pfad sein soll, der mit "git add -N" hinzugefügt wurde. Daher sollte "git grep --cached" keine Treffer anzeigen (oder fehlende Treffer anzeigen, mit -L) ) in einem solchen Pfad, aber diese Logik gilt nicht für "git grep", dh Suche in den Arbeitsbaumdateien. Aber wir haben es aus Versehen getan, was korrigiert wurde.
  • "git rebase -i --autostash" hat die automatisch gespeicherte Änderung nicht wiederhergestellt, als der Vorgang abgebrochen wurde.
  • "git commit --amend --allow-empty-message -S" für ein Commit ohne Nachrichtentext könnte falsch identifiziert werden, wo der Header des Commit-Objekts endet.
  • Weitere Markup-Updates für Zeichensatzzeichenfolgen, von denen erwartet wird, dass sie vom Endbenutzer in der Schriftart mit fester Breite eingegeben werden.
  • Lange Zeit hatten wir einen Kommentar in Code, der aussagte, dass unsere farbige Ausgabe nur funktioniert, wenn wir fprintf / fputs unter Windows verwenden, was in den letzten Jahren nicht mehr der Fall ist.
  • "gc.autoPackLimit" sollte, wenn es auf 1 gesetzt ist, kein Umpacken auslösen, wenn nur ein Paket vorhanden ist, aber der Code wurde schlecht gezählt und tat dies.
  • Ein Teil von "git am" hatte eine seltsame Helferfunktion, die Sachen von außerhalb "seines" anrief, anstatt das zu nennen, was wir "unser" hatten, was nicht geschlechtsneutral und inkonsistent mit dem Rest des Systems war Äußeres Zeug wird normalerweise "ihres" im Gegensatz zu "unserem" genannt.
  • Das Testframework hat einen neuen Helper test_match_signal gelernt, um zu überprüfen, ob ein Exit-Code durch ein erwartetes Signal getötet wurde.
  • "git blame -M" hat eine einzelne Zeile verpasst, die innerhalb der Datei verschoben wurde.
  • Korrigiert vor kurzem eingeführte Codepaths, die an parallelen Submodul-Operationen beteiligt sind, die zu früh beim Lesen aufgehört haben und beim Versuch, unter einer Ecke zu schreiben, CPU verschwendet haben könnten.
  • "git grep -i" hat gelernt, den Fall in Nicht-Ascii-Gebietsschemata korrekt zu falten.
  • Ein Test, der unbedingt "mktemp" verwendet, hat gelernt, dass der Befehl nicht unbedingt überall verfügbar ist.
  • "git blame file" erlaubte es, die Zeilenlinie in den nicht übergebenen, nicht angehängten Inhalten von "file" zu inspizieren, aber es wurde abgelehnt, wenn "file" nicht im aktuellen Commit erschien. Wenn "Datei" durch Umbenennen einer vorhandenen Datei erstellt wurde (aber die Änderung wurde nicht festgeschrieben), war diese Einschränkung unnötig eng.
  • "git add -NDir / file & amp; git write-tree" erzeugte eine falsche Baumstruktur, wenn sich andere Pfade im selben Verzeichnis befinden, das nach "file" sortiert ist.
  • "git fetch http: // benutzer: pass @ host / repo ..." schrubbte den userinfo-teil, aber "git push" nicht.
  • Ein alter Fehler, der dazu führte, dass "git diff --ignore-space-at-eol" sich schlecht benahm, wurde behoben.
  • "git notes merge" hatte einen Code, um zu sehen, ob ein Pfad existiert (und schlägt fehl, wenn dies der Fall ist) und öffnet dann den Pfad zum Schreiben (wenn dies nicht der Fall ist). Ersetzen Sie es durch Öffnen mit O_EXCL.
  • "git pack-objects" und "git index-pack" arbeiten meist mit off_t, wenn über den Offset von Objekten in einer Packdatei gesprochen wird, aber es gab eine Handvoll Orte, die "unsigned long" verwendeten, um diesen Wert zu halten zu einer unbeabsichtigten Kürzung.
  • Das neueste Update von "git daemon" versucht, den KEEPALIVE auf Socket-Ebene zu aktivieren, aber wenn es über inetd erzeugt wird, muss der Standard-Eingabedateideskriptor nicht unbedingt mit einem Socket verbunden sein. Unterdrückt einen ENOTSOCK-Fehler von setsockopt ().
  • Das letzte FreeBSD hat die Perl-Verfügbarkeit unter / usr / bin / perl eingestellt; Schalten Sie den integrierten Pfad zu / usr / local / bin / perl auf nicht zu alte FreeBSD-Versionen.
  • "git status" hat gelernt, "merge --abort" während einer konflikthaften Zusammenführung vorzuschlagen, genau wie es bereits "rebase --abort" während einer widersprüchlichen Rebase vorschlägt.
  • Die .c / .h-Quellen sind in unserer .gitattributes-Datei als solche gekennzeichnet, damit "git diff-W" und Freunde besser funktionieren.
  • Vorhandener autoconf-generierter Test für die Notwendigkeit, eine Verbindung mit der pthread-Bibliothek herzustellen, hat nicht alle Funktionen von pthread-Bibliotheken überprüft; neuere FreeBSD hat einige Funktionen in libc, aber nicht andere, und wir irrten fälschlicherweise die Verknüpfung mit libc ist genug, wenn es nicht ist.
  • Erlaube http Daemon Tests in Travis CI Tests.
  • Benutzer der API-Funktion parse_options_concat () müssen im Voraus zusätzliche Slots zuweisen und sie mit OPT_END () füllen, wenn sie die Menge der unterstützten Optionen dynamisch festlegen möchten, wodurch der Code fehleranfällig und schwer zu lesen ist. Dies wurde korrigiert, indem die API angepasst wurde, um eine neue Kopie des Arrays "struct option" zuzuordnen und zurückzugeben.
  • Die Verwendung von strbuf in "git rm", um den zu entfernenden Dateinamen zu erstellen, war ein wenig suboptimal, was behoben wurde.
  • "git commit --help" sagte "--no-verify" geht nur darum, den Pre-Commit-Hook zu überspringen und konnte nicht sagen, dass er auch den Commit-msg-Hook übersprungen hat.
  • "git merge" in Git v2.9 wurde gelehrt, standardmäßig das Verschmelzen von nicht verwandten Zeilen des Verlaufs zu verbieten, aber genau das ist die Art des "--rejoin" -Modus von "git subtree" (in contrib /) möchte tun. "git subtree" wurde angewiesen, die Option "--allow-unrelated-histories" zu verwenden, um den Standardwert zu überschreiben.
  • Die Buildprozedur für "git persistent-https" -Helfer (in contrib /) wurde aktualisiert, damit sie mit neueren Versionen von Go erstellt werden kann.
  • Es gibt eine Optimierung, die in "git diff $ treeA $ treeB" verwendet wird, um eine bereits ausgecheckte Kopie im Arbeitsbaum zu entleihen, wenn bekannt ist, dass sie mit dem Blob übereinstimmt, der verglichen wird Eine Datei ist schneller als das Lesen aus dem Objektspeicher, was das Aufblasen und Anwenden von Delta beinhaltet. Dies trat jedoch selbst dann auf, wenn die ausgecheckte Kopie die Umwandlung in eine git-Umwandlung (einschließlich des sauberen Filters) durchlaufen musste, was den gesamten Punkt der Optimierung zunichte macht. Die Optimierung wurde deaktiviert, wenn die Konvertierung erforderlich ist.
  • "git -c grep.patternType = erweitertes log --basic-regexp" hat sich schlecht verhalten, weil die interne API für den Zugriff auf die Grep-Maschine nicht gut entworfen wurde.
  • Der Windows-Port hat einige Tests in t4130 nicht bestanden, weil die zurückgegebenen Werte nicht durch die lstat (2) -Emulation inum gegeben wurden.
  • Die Zeichen in der Bezeichnung, die für Tags / refs für Commits in der "gitweb" -Ausgabe angezeigt werden, sind nun ordnungsgemäß für die korrekte HTML-Ausgabe ausgeblendet.
  • FreeBSD kann auftauchen, wenn man nach der Zeit eines Verzeichnisses fragt, was dazu führt, dass der nicht verfolgte Cache-Code auf einen langsamen Pfad zurückfällt, was wiederum Tests in t7063 zum Scheitern bringt, weil er das Verhalten des Fast-Paths überprüfen wollte.
  • Squelch-Compilerwarnungen für die Bibliothek netmalloc (in compat /).
  • Die API-Dokumentation für hashmap war unklar, ob hashmap_entry ohne weitere Abwägung gefahrlos verworfen werden kann. Erklären Sie, dass dies sicher ist.
  • Die nicht so aktuelle Neufassung von "git am", die interne Aufrufe in die Commit-Maschinerie brachte, hatte eine unbeabsichtigte Regression, in der, egal wie viele Sekunden es dauerte, viele Patches den resultierenden Committer-Zeitstempel für die resultierenden Commits anwendeten waren alle gleich.
  • "git difftool ..." gestartet in einem Unterverzeichnis konnte die Pfade zu diesem Verzeichnis, das behoben wurde, nicht interpretieren.

Was ist neu in Version 2.9.1:

  • Wenn "git daemon" ausgeführt wird, ohne dass - [init-] timeout angegeben wurde, kann eine Verbindung von einem Client, der automatisch offline geschaltet wird, lange Zeit hängen bleiben und Ressourcen verschwenden. Der KEEPALIVE auf Socket-Ebene wurde aktiviert, damit das Betriebssystem solche fehlgeschlagenen Verbindungen bemerken kann.
  • Die Befehle in der `git log`-Familie nehmen% C (automatisch) in einer benutzerdefinierten Formatzeichenfolge an. Dies hat die Farbe bedingungslos eingeschaltet und ignoriert --no-color oder mit --color = auto, wenn der Ausgang nicht mit einem tty verbunden ist; Dies wurde korrigiert, damit sich das Format wirklich wie "automatisch" verhält.
  • "git rev-list --count", dessen Durchlauflänge auf "-n" beschränkt ist, funktionierte nicht gut, da die Zählung optimiert wurde, um den Bitmap-Index zu betrachten.
  • "git show -W" (erweitert hunks, um die gesamte Funktion abzudecken, begrenzt durch Zeilen, die dem "funcname" -Muster entsprechen), um die gesamte Datei anzuzeigen, wenn eine Änderung eine ganze Funktion am Ende der Datei hinzugefügt hat, die wurde behoben.
  • Die Dokumentation wurde aktualisiert, so dass Literalbefehle, Konfigurationsvariablen und Umgebungsvariablen konsistent in Schriftarten mit fester Breite und in Manpages in Fettdruck gesetzt werden.

  • Der Unterbefehl
  • "git svn propset", der in 2.3 Tagen hinzugefügt wurde, ist jetzt dokumentiert.
  • Die Dokumentation versucht, "GPG" konsistent zu buchstabieren; Wenn auf den spezifischen Programmnamen Bezug genommen wird, wird "gpg" verwendet.
  • "git reflog" wurde gestoppt, als ein Eintrag angezeigt wurde, der auf ein Ereignis zur Erstellung einer Verzweigung hinweist (aka "ungeboren"), wodurch es so aussah, als wäre der Reflog abgeschnitten.
  • Der git-prompt scriptlet (in contrib /) war nicht freundlich mit denen, die "set -u" benutzen, was behoben wurde.
  • Ein Codepath, der alloca (3) verwendet hat, um eine unbegrenzte Menge von Daten auf dem Stapel zu platzieren, wurde aktualisiert, um dies zu vermeiden.
  • "git update-index --add --chmod = + x-datei" kann als Notausstieg dienen, aber nicht als freundliches Mittel für Leute, die es regelmäßig verwenden müssen. "git add --chmod = + x file" kann stattdessen verwendet werden.
  • Build-Verbesserungen für gnome-keyring (in contrib /)
  • "git status" bedeutet "Arbeitsverzeichnis", wenn es "Arbeitsbaum" bedeutet.
  • Kommentare zu fehlerhaften FreeBSD Shells wurden mit der Versionsnummer geklärt (9.x und vorher sind kaputt, neuere sind in Ordnung).
  • "git cherry-pick A" arbeitete an einem ungeborenen Zweig, aber "git cherry-pick A..B" nicht.
  • "git add -i / -p" hat gelernt, diff.compactionHeuristic experimental knob zu honorieren, so dass der Benutzer an der gleichen Hunk-Split als "git diff" -Ausgabe arbeiten kann.
  • "log --graph --format =" hat gelernt, dass "% & gt; | (N)" die Breite relativ zur linken Kante des Terminals angibt, nicht relativ zu dem Bereich, in dem Text rechts vom Vorfahren gezeichnet werden soll -graph Abschnitt. Es akzeptiert jetzt auch ein negatives N, was bedeutet, dass das Spaltenlimit relativ zum rechten Rand ist.
  • Die Eigentumsregel für den Speicherbereich, der Referenzen enthält, die in "git fetch" abgerufen werden, war verschraubt, was bereinigt wurde.
  • "git bisect" macht einen internen Aufruf von "git diff-tree", wenn bisection den Täter findet, aber dieser Aufruf initialisierte die Datenstruktur nicht, um sie korrekt an die diff-tree-API zu übergeben.
  • Formate der verschiedenen Daten (und wie sie zu validieren sind), wo wir die GPG-Signatur verwenden, wurden dokumentiert.
  • Behebt eine unbeabsichtigte Regression in v2.9, die "clone --depth" unterbricht, die zu Submodulen zurückgespeichert wird, indem die Submodule gezwungen werden, auch flach geklont zu werden, auf die viele Serverinstanzen, die vor den Submodulen hosten, nicht vorbereitet sind / li>
  • Korrigiere unnötigerweise die idiomatische Verwendung von ': $ {VAR = default}', um den Standardwert festzulegen, ohne ihn in Anführungszeichen zu setzen.
  • Einige plattformspezifische Codes enthielten nicht-ANSI-strikte Deklarationen von C-Funktionen, die keine Parameter enthalten, die korrigiert wurden.
  • Der interne Code, der zum Anzeigen des lokalen Zeitzonen-Offsets verwendet wird, ist nicht für die Verarbeitung von Zeitstempeln nach dem Jahr 2100 vorbereitet und hat dem Aufrufer einen falschen Offset-Wert zugewiesen. Verwenden Sie stattdessen eine harmlosere Suche mit +0000 und lassen Sie in einem solchen Fall "git log" los, anstatt abzubrechen.
  • Einer von vier Aufrufen von readlink (1) in unserer Testsuite wurde neu geschrieben, so dass der Test auf Systemen ohne den Befehl ausgeführt werden kann (andere sind im Valgrind-Testframework und t9802).
  • t / perf benötigt / usr / bin / time mit GNU-Erweiterung; Der Aufruf wird auf "Darwin" auf "gtime" aktualisiert.
  • Ein Fehler, der "git p4" während der Ausführung im verbose-Modus verursachte, um Pfade zu melden, die aufgrund des Verzweigungspräfixes nicht angegeben wurden, wurde behoben. Der Befehl sagte "Datei außerhalb des Präfixes ignorieren" für Pfade, die _inside _ sind.
  • Die Top-Level-Dokumentation "git help git" zeigte immer noch auf den Dokumentationssatz, der im nun nicht mehr existierenden google-code-Repository gehostet wurde. Aktualisieren Sie es so, dass es stattdessen auf https://git.github.io/htmldocs/git.html zeigt.

Was ist neu in Version 2.9.0:



Neu in GIT 2.8.1 (5. April 2016)

Was ist neu in Version 2.8.1:

  • Das Ziel "make rpmbuild" wurde unterbrochen, da seine Eingabe git.spec.in nicht aktualisiert wurde, um mit einer Datei übereinzustimmen, die kürzlich umbenannt wurde. Dies wurde behoben.

Was ist neu in Version 2.7.3:

  • Traditionell wurden die Tests, die Befehle ausführen, die auf dem Inhalt der Arbeitsbaumstruktur arbeiten, mit "worktree" in ihren Dateinamen benannt, aber mit dem kürzlich hinzugefügten Unterbefehl "git worktree", dessen Tests ebenfalls ähnlich benannt sind werden schwieriger, sie voneinander zu unterscheiden. Die traditionellen Tests wurden umbenannt, um stattdessen "Arbeitsbaum" zu verwenden, um sie zu unterscheiden.
  • Viele Code-Pfade vergessen, den Rückgabewert von git_config_set () zu überprüfen; Die Funktion wird zu sterben () gemacht, um sicherzustellen, dass wir nicht fortfahren, wenn eine Konfigurationsvariable fehlgeschlagen ist.
  • Der Umgang mit Fehlern beim Schreiben in unseren internen asynchronen Prozess wurde robuster gemacht, was die Blankheit in unseren Tests verringert.
  • "git show 'HEAD: Foo [BAR] Baz'" interpretierte das Argument nicht als eine rev, d. h. das Objekt, das durch den Pfadnamen mit Platzhalterzeichen in einem Baumobjekt benannt wurde.
  • "git rev-parse --git-common-dir", das in der Worktree-Funktion verwendet wird, hat sich bei Ausführung aus einem Unterverzeichnis nicht ordnungsgemäß verhalten.
  • Der Unterbefehl "v (iiew)" des interaktiven Befehls "git am -i" wurde im 2.6.0-Zeitrahmen unterbrochen, als der Befehl in C neu geschrieben wurde.
  • "git merge-tree" verwendet, um "beide Seiten hinzugefügt" Konflikt mit seinen eigenen falsch zu behandeln "erstellen Sie eine gefälschte Vorgänger-Datei, die die gemeinsamen Teile hat, was beide Seiten hinzugefügt haben und eine 3-Wege-Merge" Logik; Dies wurde aktualisiert, um den üblichen "3-Weg-Merge mit einem leeren Blob als falsche gemeinsame Vorfahren-Datei" zu verwenden, der im Rest des Systems verwendet wird.
  • Die Speicherbesitzregel der fill_textconv () API, die etwas knifflig war, wurde etwas besser dokumentiert.
  • In der Dokumentation wurde nicht klar angegeben, dass der "einfache" Modus jetzt der Standard für "git push" ist, wenn die Konfiguration von push.default nicht eingestellt ist.
  • Neueste Versionen von GNU grep sind wählerischer, wenn ihre Eingabe willkürliche Binärdaten enthält, die einige unserer Tests verwenden. Schreiben Sie die Tests erneut, um das Problem zu umgehen.
  • Eine Hilfsfunktion "git submodule" verwendet seit v2.7.0, um die Module aufzulisten, die mit dem pathspec-Argument übereinstimmen, das den Unterbefehlen (z. B. "submodule add") zugewiesen wurde.
  • "git config section.var value", um einen Wert in der Konfigurationsdatei pro Repository festzulegen, ist fehlgeschlagen, wenn er außerhalb eines Repositorys ausgeführt wurde, der Grund jedoch nicht korrekt angegeben wurde.
  • Der Code zum Lesen der Paketdaten mit den Offsets, die in der Paket-IDX-Datei gespeichert sind, wurde sorgfältig erstellt, um die Gültigkeit der Daten im IDX zu überprüfen.

Was ist neu in Version 2.7.2:

  • Die Low-Level-Merge-Maschinerie hat gelernt, die CRLF-Zeilenbeendigung zu verwenden, wenn Konfliktmarker in zusammengesetzte Inhalte eingefügt werden, die selbst CRLF-terminiert sind.
  • "git worktree" hatte einen kaputten Code, der versuchte, mögliche Inkonsistenzen zu beheben, die daraus resultieren, dass Endanwender einen Arbeitsbaum an andere Orte verschieben, ohne Git zu sagen (das Original-Repository muss Backpointer auf seinen Arbeitsbäumen behalten, aber "mv" von Endnutzern betrieben, die mit dieser Tatsache nicht vertraut sind, werden sie offensichtlich nicht anpassen), was die Situation tatsächlich verschlimmerte, wenn sie ausgelöst wurde.
  • "git push --force-with-lease" wurde unterrichtet, um zu melden, ob der Push benötigt wird, um zu forcieren (oder schnell).
  • Der emulierte "Ja" -Befehl, der in unseren Testskripten verwendet wurde, wurde dahingehend optimiert, nicht zu viel Zeit für die Generierung unnötiger Ausgaben zu verwenden, um denjenigen zu helfen, die auf Windows testen, wo er nicht anhalten würde, bis der Pipepuffer gefüllt ist zu wenig SIGPIPE.
  • Das vimdiff-Backend für "git mergetool" wurde angepasst, um Puffer in der Reihenfolge anzuordnen und zu nummerieren, die der Mehrheit der Leute entspricht, die von links nach rechts gelesen haben, dann von oben nach unten und den Puffern 1 2 3 4 "mental" zuweisen zu lokalen Basis-Remote-Merge-Fenstern basierend auf dieser Reihenfolge.
  • Die Dokumentation für "git clean" wurde korrigiert; Es wurde erwähnt, dass .git / modules / * entfernt wird, indem zwei "-f" gegeben werden, was nie der Fall war.
  • Pfade, die dem Index mit "add -N" mitgeteilt wurden, sind noch nicht im Index, aber ein paar Befehle verhielten sich so, als wären sie bereits schädlich.
  • Enthält auch kleine Dokumentations- und Testupdates.

Was ist neu in Version 2.6.4:

  • Das Skript "configure" hat nicht richtig auf -lpthread getestet, was einige Linker verärgert hat.
  • Fügen Sie Unterstützung hinzu, um http / https über den SOCKS-Proxy zu sprechen.
  • Portabilitätsfix für Windows, der die $ SHELL-Variable unter Verwendung von Nicht-POSIX-Pfaden neu schreiben kann.
  • Wir erlauben nun konsequent, dass alle Hooks ihre Standardeingabe ignorieren, anstatt sich über SIGPIPE beschweren zu müssen.
  • Korrigieren Sie das Shell-Zitat im Contrib-Skript.
  • Überprüfung der Portabilität für ein Thema in Version 2.6.1.
  • Erlaube Tilde-Erweiterung in einigen HTTP-Konfigurationsvariablen.
  • Geben Sie einen nützlichen Sonderfall "diff / show --word-diff-regex =." als ein Beispiel in der Dokumentation.
  • Korrektur für einen Eckfall im Filterzweig.
  • Lass git-p4 auf einem abgetrennten Kopf arbeiten.
  • Dokumentationserklärung für "check-ignore" ohne "--verbose".
  • Genauso wie der Arbeitsbaum bereinigt wird, wenn der Benutzer die Übermittlung in P4Submit.applyCommit () abgebrochen hat, bereinigen Sie die Unordnung, wenn "p4 submit" fehlschlägt.
  • Eine übrig gebliebene .idx-Datei ohne entsprechende .pack-Datei im Repository beeinträchtigt die Leistung; "git gc" hat gelernt, sie zu beschneiden.
  • Der Code zum Vorbereiten der Arbeitsbaumseite des temporären Verzeichnisses für die Funktion "dir-diff" vergaß, dass symbolische Links nicht in den temporären Bereich kopiert (oder symlinked) werden müssen, da der Code bereits spezielle Fälle enthält und überschreibt Sie. Außerdem war es falsch, den Objektnamen des Ziels eines symbolischen Links zu berechnen, der möglicherweise gar nicht existiert oder ein Verzeichnis sein kann.
  • Es gab keine Möglichkeit, eine konfigurierte rebase.autostash-Variable von der Befehlszeile aus zu unterdrücken, da "git rebase --no-autostash" fehlte.
  • Lassen Sie "git interpret-trailers" außerhalb eines Git-Repositorys laufen.
  • Erzeugt den korrekten "dreckigen" Marker für Shell-Eingabeaufforderungen, auch wenn wir uns in einem Waisen- oder einem ungeborenen Zweig befinden.
  • Einige Eckfälle wurden in der String-Anpassung in "git status" behoben.
  • Apples gängige Crypto-Implementierung von SHA1_Update () benötigt nicht mehr als 4 GB auf einmal, und wir haben jetzt eine Kompilierungslösung dafür.

Was ist neu in Version 2.5.3:

  • Die experimentelle nicht-gecrackte Cache-Funktion war fehlerhaft, wenn Pfade mit einigen Ebenen von Unterverzeichnissen beteiligt sind.
  • Aktuelle Versionen von skripted "git am" haben eine Leistungsregression in "git am --skip" -Codepath, die in der eingebauten Version auf der "Master" -Front nicht mehr existiert. Beheben Sie die Regression in der letzten Skriptversion, die in 2.5.x Wartungsspur und älter angezeigt wird.

Was ist neu in Version 2.4.6:

  • "git fetch --depth =" und "git clone --depth =" haben eine seichte Übertragungsanforderung auch an ein Upload-Pack ausgegeben, das diese Fähigkeit nicht unterstützt.
  • "git fsck" ignoriert ungültige oder ungültige Objekte, die in reflog aufgezeichnet wurden.
  • Die tcsh-Vervollständigung schreibt ein bash-Skriptlet, aber das wäre für Benutzer mit noclobber set fehlgeschlagen.
  • Bei den letzten Aktualisierungen von Mac OS X wird die Logik unterbrochen, um zu erkennen, dass der Computer im Beispiel-Auto-GC-Skript eingeschaltet ist.
  • "git format-patch --ignore-if-upstream A..B" wollte keine Tags als Grenz-Commits erhalten.
  • Enthält auch Typofixes, Dokumentationsaktualisierungen und Trivialcode
  • Aufräumarbeiten.

Was ist neu in Version 2.4.2:

  • "git rev-list --objects $ old --not --all", um zu sehen, ob alles, was von $ old erreichbar ist, bereits mit den existierenden refs verbunden ist, war sehr ineffizient.
  • "hash-object --literally", eingeführt in v2.2, war nicht darauf vorbereitet, einen wirklich langen Objekttypnamen zu verwenden.
  • "git rebase --quiet" war nicht ganz ruhig, wenn es nichts zu tun gibt.
  • Die Vervollständigung für den Parameterwert "log --decorate =" war falsch.
  • "filter-branch" beschädigte Commit-Log-Nachricht, die mit einer unvollständigen Zeile auf Plattformen mit einigen "sed" -Implementierungen endet, die eine solche Linie bilden. Arbeite damit herum, indem du die Verwendung von "sed" vermeidest.
  • "git daemon" kann nicht aus der Quelle unter NO_IPV6-Konfiguration erstellen (Regression in 2.4).
  • "git stash pop / apply" vergaß, dass nicht nur der funktionierende Baum sauber ist, sondern auch der Index sauber ist. Letzteres ist wichtig, da eine Stash-Anwendung einen Konflikt verursachen kann und der Index zur Konfliktlösung verwendet wird.
  • Wir haben $ GIT_EXEC_PATH vorangestellt und den Pfad "git" in (typischerweise "/ usr / bin") zu $ ​​PATH installiert, wenn Unterprogramme und Hooks fast für die Ewigkeit aufgerufen werden, aber der ursprüngliche Anwendungsfall, den letzterer zu unterstützen versuchte, war halb -bogus (dh installiere git nach / opt / foo / git und führe es aus, ohne / opt / foo auf $ PATH zu haben) und, was noch wichtiger ist, es ist immer weniger relevant geworden, da Git mehr Mainstream wurde (dh die Benutzer wollten _want_ haben) es auf ihrem $ PATH). Stoppen Sie, den Pfad, in dem "git" installiert ist, dem $ PATH der Benutzer vorzuziehen, da dies die Befehlssuchreihenfolge der Leute beeinflussen würde (zB mögen sie keine Versionen von Programmen, die nichts mit Git in / usr / bin zu tun haben) überschreiben Sie sie, indem Sie andere in / usr / local / bin haben und das letztere Verzeichnis früher in ihrem $ PATH) haben.
  • Enthält auch Typofixes, Dokumentationsaktualisierungen und banale Code-Bereinigungen.

Ähnliche Software

github-distutils
github-distutils

20 Feb 15

Mr-Repo
Mr-Repo

14 Apr 15

tkdiff
tkdiff

15 Apr 15

Kommentare zu GIT

Kommentare nicht gefunden
Kommentar hinzufügen
Schalten Sie auf die Bilder!