Dev News Daily ENDE

Git 2.56 bringt git add --resolved und git branch --delete-merged

Git 2.56.0 ist erschienen, mit 748 Commits ohne Merges seit Version 2.55.0, beigetragen von 104 Personen, darunter 39 zum ersten Mal, wie die auf LWN veröffentlichte Ankündigung zeigt.

Mehrere Neuerungen betreffen den Alltag mit Konflikten und Branches. git add erhält die Option --resolved, die Pfade mit aufgelösten Konflikten vormerkt, andere lokale Änderungen aber unberührt lässt; sie prüft die Dateien auf übrig gebliebene Konfliktmarkierungen und bricht ab, wenn sie welche findet. git branch lernt --delete-merged, das lokale Branches löscht, die bereits in ihre Remote-Tracking-Branches eingeflossen sind, und git branch -d meldet jetzt, wenn ein Branch wegen eines laufenden Bisect nicht gelöscht werden kann. git bisect bekommt die Option --reset-when-found, die nach Ende der Suche automatisch zum Ausgangszustand oder zum gefundenen Commit zurückkehrt.

Das experimentelle Kommando git history erhält einen Unterbefehl drop, der einen Commit entfernt und seine Nachfolger neu anwendet. git replay lernt --linearize, das Merge-Commits verwirft wie git rebase --no-rebase-merges. Die Werkzeugsammlung git refs bekommt die Unterbefehle create, delete, update und rename.

Für Partial Clones gibt es zwei Änderungen: git cat-file --batch-command erhält remote-object-info, das Größe und Typ eines Objekts per Protokoll v2 beim Server erfragt, ohne es herunterzuladen, und git repack lernt --drop-filtered, um lokale Promisor-Blobs oberhalb einer Größengrenze zu löschen. Hilfe über -h oder --help endet jetzt mit Status 0 statt 129, und das Sperren der Konfigurationsdatei wird kurz wiederholt, sodass gleichzeitige Schreibzugriffe nicht sofort scheitern.

Git 2.56 bringt git add --resolved und git branch --delete-merged
Git 2.56 bringt git add --resolved und git branch --delete-merged — Dev News Daily

Was das bedeutet

Vieles davon macht aus einer selbstgeschriebenen Gewohnheit eine Option. Teams mit einem Shell-Alias zum Aufräumen gemergter Branches oder einer Prüfung auf vergessene Konfliktmarkierungen vor dem Commit können beides durch eine eingebaute, vom Git-Projekt getestete Funktion ersetzen. In Automatisierungen lohnt ein Blick auf den geänderten Exit-Code: Ein Skript, das bei einem Hilfeaufruf 129 erwartete, sieht jetzt 0.