Mein Dev-Shop hat einen bevorzugten Git-Flow wie folgt:
- Checkout einer Issue-Filiale (
issue9
). - Beheben Sie das Problem (
serve over port 80
). - Übernehmen (
git commit
...). - Führen Sie den Issue-Zweig in einem lokalen Feature-Zweig zusammen (
cal
). 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:
- Führen Sie das Issue-Commit in der lokalen Feature-Verzweigung zusammen.
- Daraufhin weigert sich git aufgrund von Änderungen an der Ferne, zum Ursprung zu gelangen.
- Remote-Änderungen in den lokalen Feature-Zweig ziehen.
- Git generiert automatisch ein separates Merge-Commit.
ODER
- Remote-Änderungen in den lokalen Feature-Zweig ziehen.
- 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?
git-rebase
? Klingt so, als ob es genau das ist, wonach Sie suchen. Oder erlaubt Ihr Unternehmen keine Umbasierung?Antworten:
Für einmalige Züge können Sie verwenden
git pull --rebase
:Um git so zu konfigurieren, dass es sich immer so verhält
git pull
, sehen Sie folgendermaßen~/.gitconfig
aus:quelle
--rebase
Option istgit pull
.