17. August 2013

Patch-Workflows: git format-patch, git apply-patch, git am

Patches erzeugen

Beispiel-Patch

From 92132241233033a123c4fa833449d6a0d550219c Mon Sep 17 00:00:00 2001
From: Bob <bob@example.com>
Date: Tue, 25 May 2009 15:42:16 +0200
Subject: [PATCH 1/2] first change

---
 test.txt |    1 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/test.txt b/test.txt
index 7634da4..270eb95 100644
--- a/test.txt
+++ b/test.txt
@@ -1 +1 @@
-Hallo Bob
+Hallo Alice!

Patches anwenden

Aufgaben

  1. Aktualisieren Sie Ihren lokalen master-Branch aus dem bereits zuvor verwendeten GitHub-Repository (git fetch/pull/reset). master sollte identisch sein mit origin/master.
  2. Erstellen Sie einen neuen lokalen Branch bugfixpatch und führen Sie hier eine Änderung durch.
  3. Erstellen Sie mit git format-patch einen Patch für Ihre Änderung. Prüfen Sie das .patch-File und tauschen Sie den Patch per E-Mail mit Ihrem Nachbarn aus.
  4. Löschen Sie Ihren Branch mit der Änderung mit git branch -D bugfixpatch.
  5. Wenden Sie den Patch Ihres Nachbarn mit git am in Ihrem sauberen Master-Branch an. Pushen Sie den Commit in den Remote-Branch. Je nachdem wer zuerst pusht und wie schnell andere Teilnehmer sind, kommt es zu Konflikten, die zu beheben sind (merge oder rebase). Letztendlich sollten sich Ihre eigene Änderung, die Änderung Ihres Nachbarn sowie die Änderung aller Schulungsteilnehmer integriert zusammen in origin/master wiederfinden.