Dennis Heidsiek wrote:
> Aber TortoiseGit bietet mir hingegen fünf Möglichkeiten an:
• Fetch:
• Pull:
• Add:
• Commit:
• Push:
Hier scheint offensichtlich ein anderer Arbeitsablauf vorzuliegen.
Ja, das ist auch der Fall.
Der Arbeitsablauf bei Git ist wesentlich anders, was am Konzept liegt,
es ist eben ein verteiltes System und kein zentralisiertes.
• »Fetch« ist dazu da, die Referencen von einem Remote zu holen, das
ändert an deinem Worktree erstmal gar nichts. Du kannst dann aber z.B.
mittels cherry-pick einzelne Commits auswählen, oder dir diverse Diffs
davon anschauen.
• »Pull« macht erst »Fetch« und dann »Merge«.
• »Add« gibst du die Dateien, die du im nächsten Commit einbeziehen
willst. Wobei »Dateien« hier unvollständig ist, denn du kannst auch nur
Teile der Änderungen einer Datei hinzufügen (sogenannte »Hunks«). Ob
TortoiseGit das schon unterstützt kann ich nicht sagen, normal muss man
`git add -i` ausführen, wobei das CL-Interface effektiv, aber etwas
gewöhnungsbedürftig und nicht intuitiv ist.
• »Commit« erstellt einen Commit, wobei du den letzten Commit auch
nachträglich bearbeiten kannst (--amend)
• »Push« ist das Gegenteil von »Pull«, du schickst also deine Änderungen
an ein remote Repo, wobei ein »Push« diversen Beschränkungen unterliegen
kann, hier kommt es auf die Konfiguration des Servers an, so könnte ein
Push z.B. nur dann erlaubt sein, wenn es keine Konflikte gibt, sonst
bleibt das remote Repo unverändert (ist ja auch nur sinnvoll ;)).
Hoffe jetzt ist einiges klarer. ;)
Gruß,
Bernd