Ich bin neu bei Git und teste es gerade aus. Auf meinem lokalen Rechner mache ich häufig Commits. In Abständen möchte ich den Code zu einem zentralen Repo schieben. In diesem Moment veröffentliche ich alle gemachten Commits. Wenn ich allein arbeite, ist das kein großes Problem, aber wenn ich mit mehreren Entwicklern an einem Projekt arbeite, wird das chaotisch. In der Zwischenzeit möchte ich alle lokalen Commits auf meinem lokalen Rechner gespeichert haben, nur für den Fall.
Ist das ein guter Weg um mit Git zu arbeiten? Ist das möglich? Oder denke ich in die falsche Richtung?
Eine Möglichkeit, wie Sie damit umgehen können, ist, sich in Ihrem lokalen Repository zu einem persönlichen Entwicklungszweig zu machen. Es ist nur ein regulärer Zweig, nichts besonderes, aber Commits auf dem Zweig werden nicht an das zentrale Repository gesendet, wenn Sie git push
ausführen. Wenn Sie bereit sind, Ihre Änderungen zu teilen, führen Sie die Commits aus Ihrem persönlichen Zweig in den Master-Zweig ein und anschließend können Sie sie in das zentrale Repository verschieben.
Eine Variante wäre es, für jede logische Funktion, an der Sie arbeiten, eine neue Verzweigung zu erstellen, so dass Sie viele kleine persönliche Entwicklungszweige statt einer großen Zweigstelle hätten. Anschließend können Sie die Feature-Zweige löschen, nachdem Sie sie in den Master-Zweig eingefügt haben.
Der Git-Workflow ermutigt Sie, Ihre lokalen (früh und oft) Commits in eine logische Folge von Commits zu säubern, die den späteren Leser Schritt für Schritt durch die Implementierung Ihrer neuen Arbeit führen. Dies kann mit dem Feature git rebase -i
und anderen Tools erfolgen. Damit können Sie Commits nach Bedarf neu ordnen, bearbeiten, teilen und zerquetschen, damit alles schön aussieht. Dann drück das Commit auf den Server und behalte es natürlich auch lokal.
Dieser Workflow ist keineswegs erforderlich. Sie können alle Ihre detaillierten Commits auf den Server schieben (aber Sie behaupten, dass das "chaotisch" wird), oder Sie können Ihre Arbeit in einen einzigen Commit zerquetschen und das nach oben schieben. Was Sie jedoch nicht vernünftig tun können, ist, einen Commit auf den Server zu schieben, während Sie einen anderen Satz lokal belassen.