Git: Unterschied zwischen den Versionen
Mucki (Diskussion | Beiträge) Seite wurde angelegt; Einleitung, Installation, Konfiguration, Projekt erstellen, Workflow, Zusammenarbeit |
Boenki (Diskussion | Beiträge) K typo |
||
Zeile 19: | Zeile 19: | ||
== Ein Projekt erstellen == | == Ein Projekt erstellen == | ||
Zuerst erstellt man einen Projektordner. | |||
mkdir example/ | mkdir example/ | ||
Zeile 37: | Zeile 37: | ||
git add example.c README | git add example.c README | ||
git commit -m 'initial commit' | git commit -m 'initial commit' | ||
== Ein einfacher Workflow == | == Ein einfacher Workflow == |
Version vom 2. November 2010, 23:21 Uhr
Git ist ein Versionskontrollsystem. Es ist freie Software unter GPL und war ursprünglich für den Linux-Kernel entwickelt worden. Inzwischen werden viele weitere bekannte Projekte, wie GNOME, Qt und X.org mit Git verwaltet.
Installation
Git wird aus dem extra-Repository mit Pacman installiert.
pacman -S git
Konfiguration
Als erste Konfiguration setzt man den Username und die E-Mail für Git
git config --global user.name='Your name' git config --global user.email='your@mail.com'
Dies wollte als erste Konfiguration reichen
Ein Projekt erstellen
Zuerst erstellt man einen Projektordner.
mkdir example/ cd example/
Nun initialisiert man Git.
git init
Nun erstellt man die Ausgangsdateien des Projekts, z.B. mit 'touch'.
touch example.c touch README
Zuletzt fügt man diese dem Git-Projekt hinzu und erstellt einen Commit.
git add example.c README git commit -m 'initial commit'
Ein einfacher Workflow
Zuerst erstellt man einen neuen Branch. Dies ist ein seperater Zweig des Projekts, indem man die Veränderungen, die getätigt werden, zuerst testen kann, bevor sie in den Hauptzweig (üblicherweise 'master') einfließen.
git branch experimental git checkout experimental
Nun tätigt man seine Veränderungen, testet sie, erstellt einen Commit und fügt, wenn alles ausgereift ist, die neuen Dateien 'master' hinzu.
vim example.c git add example.c git commit -m '...' git checkout master git merge experimental
Zusammenarbeit
Es wird davon ausgegangen, dass Alice an 'example' bisher alleine arbeitete und Bob nun zum Projekt hinzustößt. Deshalb wird zuerst das Repository geklont.
git clone /home/alice/example example
Hierdurch wird im aktuellen Ordner der Ordner 'example' erstellt und alle Dateien aus dem Quellordner hinzugefügt. Nachdem alle Änderungen durchgeführt wurden, holt Alice sich diese, überprüft, ob alles ihren Vorstellungen entspricht und wenn ja, fügt diese zu ihrer Kopie hinzu.
git fetch /home/bob/example git log -p HEAD..FETCH_HEAD git merge HEAD..FETCH_HEAD
Mit der Option 'pull' anstatt von 'fetch', würde 'fetch' und 'merge' in einem Schritt durchgeführt werden, dabei kann es jedoch zu Konflikten kommen, die zuerst beiseitigt werden müssen!
Des Weiteren ist es möglich 'Shorthands' zu erstellen, um sich lange Pfadnamen zu sparen.
git remote add bob /home/bob/example
Nun kann man mit 'bob' alle vorherigen Operationen durchführen.
git fetch bob git log -p master..bob/master git merge bob/master