Wie man einen linearen Git Flow macht?

1

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

  1. Checkout einer Issue-Filiale ( issue9).
  2. Beheben Sie das Problem ( serve over port 80).
  3. Übernehmen ( git commit...).
  4. Führen Sie den Issue-Zweig in einem lokalen Feature-Zweig zusammen ( cal).
  5. Schieben Sie den lokalen Feature-Zweig auf origin.

    • Alle Zusammenführungen sollten nach Möglichkeit im Schnellvorlauf erfolgen.

Diese letzte Einschränkung bringt mich dazu, mir die Haare auszureißen. In der Praxis kann ich entweder:

  1. Führen Sie das Issue-Commit in der lokalen Feature-Verzweigung zusammen.
  2. Daraufhin weigert sich git aufgrund von Änderungen an der Ferne, zum Ursprung zu gelangen.
  3. Remote-Änderungen in den lokalen Feature-Zweig ziehen.
  4. Git generiert automatisch ein separates Merge-Commit.

ODER

  1. Remote-Änderungen in den lokalen Feature-Zweig ziehen.
  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, ende ich damit, Git durcheinander zu bringen und vier von fünf Git-Befehlen ausführen zu müssen, um es zu bereinigen.

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

mcandre
quelle
Hast du Kopf git-rebase? Klingt so, als ob es genau das ist, wonach Sie suchen. Oder erlaubt Ihr Unternehmen keine Umbasierung?
Neersighted

Antworten:

2

Für einmalige Züge können Sie 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 folgendermaßen ~/.gitconfigaus:

[push]
    default = matching
[branch]
    autosetuprebase = always
[color]
    status = auto
[merge]
    ff = true
Cameron Ball
quelle
Vielen Dank! Ich bin froh, dass die einzige Änderung an meinem aktuellen Git-Flow nur die --rebaseOption ist git pull.
Mcandre