2. Szenario: Programmier Projekt mit
mehreren Beteiligten wird bearbeitet.Alle
sollen
◦ die aktuelleVersion des Programms haben
◦ über Neuerungen informiert werden
BestesVorgehen?
5. Nur eine aktuellsteVersion
◦ Gleichzeitiges Bearbeiten eines Teilstücks
schwierig
◦ Erhöhte Komplexität, wenn mehrere
Personen an verschiedenen Files arbeiten
6. Daten Lokal gespeichert
◦ Datenverlust auf dem Rechner bedeutet auch
Verlust des Programms
7.
8. Versionierung
◦ Alle altenVersionen vorhanden
◦ Änderungen sichtbar/kommentiert
Parallele Entwicklung wird unterstützt
◦ Branching/Merging
Zentrale Ablage
◦ Für alle erreichbar
◦ Absturz des eigenen Rechners verkraftbar
9. Entstehung 2005
Entwickelt von Linus Torvalds
Opensource Alternative zu damals verfügbarer
Software
Einsatz: Entwicklung des Linux Kernels
21. branches are just pointers to commits
◦ When you create a branch, all Git needs to do is
create a new pointer—it doesn’t change the
repository in any other way.
◦ This has a dramatic impact on Git's merging
model.
22. Whereas merges in SVN are done on a
file-basis, Git lets you work on the more
abstract level of commits.
You can actually see merges in the project
history as a joining of two independent
commit histories.
23. # Start a new feature
git checkout -b new-feature master
# Edit some files
git add <file>
git commit -m "Start a feature“
# Edit some files
git add <file>
git commit -m "Finish a feature“
# Merge in the new-feature branch
git checkout master
git merge new-feature
git branch -d new-feature
24. # Start a new feature
git checkout -b new-feature master
# Edit some files
git add <file>
git commit -m "Start a feature“
# Edit some files
git add <file>
git commit -m "Finish a feature“
25. # Develop the master branch
git checkout master
# Edit some files
git add <file>
git commit -m "Make some super-stable
changes to master“
# Merge in the new-feature branch
git merge new-feature
git branch -d new-feature