Die Fehlermeldung kann ich zwar umgehen, jedoch deutet sie darauf hin, dass ich in meinem Workflow etwas grundsätzlich falsch mache.
Ich habe einen main und develop branch. Jedes neue Feature oder Bugfix mache ich in einem dritten Branch (feature), in dem die commits sehr klein sein können, die commit messages lazy sind usw.
Wenn das Feature fertig ist, möchte ich es als einzelnen Commit in develop aufnehmen, mit einer ordentlichen Commit-Message. Die commits in feature und der gesamte feature werden gelöscht.
Code: Alles auswählen
git checkout develop
git merge --squash feature
git commit -am 'super feature'
git branch -d feature
Mit dem großen -D geht es dann auch. Ich verstehe sogar einigermaßen, warum die Meldung auftaucht. Git weiß ja nicht, dass der letzte Commit in develop die commits aus feature "enthält". Aus Gits Perspektive schmeiße ich feature vollständig in die Tonne, ohne ein "Backup" zu haben.Der Branch 'feature' ist nicht vollständig zusammengeführt. Wenn Sie sicher sind diesen Branch zu entfernen, führen Sie 'git branch -D feature' aus.
Nur weiß ich nicht, ob das so OK ist, oder ob es eine elegantere Lösung gibt.
Ziel ist
- feature ist nur lokal vorhanden
- feature darf als Branch mit seinen commits remote/origin nicht in der History auftauchen
- Was ich in feature gemacht habe, soll remote nur in develop als einzelner Commit auftauchen