Wie erstelle ich einen linearen Git-Flow?

Wie erstelle ich einen linearen Git-Flow?

Mein Dev-Shop hat einen bevorzugten Git-Flow wie diesen:

  1. Checken Sie einen Problemzweig aus ( issue9).
  2. Problem lösen ( serve over port 80).
  3. Begehen ( git commit...).
  4. Führen Sie den Problemzweig in einen lokalen Featurezweig zusammen ( cal).
  5. Pushen Sie den lokalen Feature-Zweig nach origin.

    • Alle Zusammenführungen sollten, wenn möglich, im Schnelldurchlauf erfolgen.

Diese letzte Einschränkung bereitet mir große Sorgen. In der Praxis kann ich entweder:

  1. Führen Sie das Problem-Commit in den lokalen Feature-Zweig ein.
  2. Woraufhin Git aufgrund von Remote-Änderungen das Pushen zum Ursprung verweigert.
  3. Ziehen Sie Remote-Änderungen in den lokalen Feature-Zweig.
  4. Git generiert automatisch ein separates Merge-Commit.

ODER

  1. Ziehen Sie Remote-Änderungen in den lokalen Feature-Zweig.
  2. Git generiert automatisch ein separates Merge-Commit.

Gibt es eine Einstellung, die ich in der globalen/lokalen Git-Konfiguration anpassen kann, um dieses Verhalten zu erreichen? Wenn ich das versuche, bringe ich Git durcheinander und muss vier oder fünf Git-Befehle ausführen, um es zu bereinigen.

Ich will einfach nur emacs && git commit && git checkout cal && git merge issue9 && git push origin cal, weißt du?

Antwort1

Für einmalige Abrufe können Sie Folgendes verwenden git pull --rebase:

$ git commit
$ git checkout cal
$ git merge issue9
$ git pull --rebase
$ git push origin cal

Um Git so zu konfigurieren, dass es sich immer so verhält git pull, sehen Sie es ~/.gitconfigfolgendermaßen aus:

[push]
    default = matching
[branch]
    autosetuprebase = always
[color]
    status = auto
[merge]
    ff = true

verwandte Informationen