[Trennmuster] Bitte kein Merge

Guenter Milde milde at users.sf.net
So Mai 13 16:54:28 CEST 2018


On 13.05.18, Werner LEMBERG wrote:

> >> Wenn möglich, führe bitte ein »Rebase« aus, bevor Du »git commit«
> >> machst – ich hätte gerne eine lineare Historie.

...

> Obiges ist ein grober Ablauf.  

Ich hab mir dazu ein Skript git-update gebastelt::

  # update the git repo keeping the local changes on top
  
  git stash            # stow away uncommited changes
  git pull --rebase    # put commited changes on top
  git stash pop	     # restore uncommited changes


> Wenn's Probleme gibt (sprich: sich Änderungen überschneiden), wird's
> leider ein bißchen haarig, und es kann recht mühsam sein, eine lineare
> Historie zu erzeugen:

> (1) Verwende »git format-patch ...«, um lokale Commits komplett zu
>     speichern.  Zum Beispiel speichert der Befehl »git format-patch
>     HEAD^^« die letzten zwei Commits als patch-Dateien.

> (2) Entferne lokale Commits aus dem git-Repositorium mittels »git
>     reset --hard ...«.

> (3) Führe »git pull --rebase« aus.

> (4) Führe wiederholt »git am < <patch-Datei>« aus, um die in (1)
>     gespeicherten Patches Stück für Stück wieder anzuwenden.  In
>     diesem Schritt kann man Konflikte manuell auflösen (siehe
>     git-Handbuch, wie das genau geht).

> (5) Schließe mit »git push« ab.

Ich verwende machmal auch git rebase --interaktive, um "per Hand"
umzusortieren.

Dabei (wie bei "amend") immer beachten, dass commits die schon "gepusht"
(also im externen Repositorium) sind nicht mehr geändert werden sollten,
sonst wirds echt blöd.

Viele Grüße

Günter



Mehr Informationen über die Mailingliste Trennmuster