![Wie erstelle ich einen linearen Git-Flow?](https://rvso.com/image/1414669/Wie%20erstelle%20ich%20einen%20linearen%20Git-Flow%3F.png)
Mein Dev-Shop hat einen bevorzugten Git-Flow wie diesen:
- Checken Sie einen Problemzweig aus (
issue9
). - Problem lösen (
serve over port 80
). - Begehen (
git commit
...). - Führen Sie den Problemzweig in einen lokalen Featurezweig zusammen (
cal
). 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:
- Führen Sie das Problem-Commit in den lokalen Feature-Zweig ein.
- Woraufhin Git aufgrund von Remote-Änderungen das Pushen zum Ursprung verweigert.
- Ziehen Sie Remote-Änderungen in den lokalen Feature-Zweig.
- Git generiert automatisch ein separates Merge-Commit.
ODER
- Ziehen Sie Remote-Änderungen in den lokalen Feature-Zweig.
- 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 ~/.gitconfig
folgendermaßen aus:
[push]
default = matching
[branch]
autosetuprebase = always
[color]
status = auto
[merge]
ff = true