Git: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
K (typo)
K (→‎Installation: vorlage:installation)
(11 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
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.
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. [http://de.wikipedia.org/wiki/Git] Des Weiteren kann man natürlich nicht nur Software-Projekte, sondern auch Artikel, Lied-Texte etc. mit Git kontrollieren, da das System intern mit 'diff' arbeitet.


== Installation ==
{{installation|repo=extra|paket=git}}
 
Git wird aus dem extra-Repository mit [[Pacman]] installiert.
 
  pacman -S git


== Konfiguration ==
== Konfiguration ==


Als erste Konfiguration setzt man den Username und die E-Mail für Git
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
  git config --global user.name 'Your name'
  git config --global user.email 'your@mail.com'


Dies sollte als erste Konfiguration reichen.


== Ein Projekt erstellen ==
== Ein Projekt erstellen ==
Zeile 28: Zeile 23:
   git init
   git init


Nun erstellt man die Ausgangsdateien des Projekts, z.B. mit 'touch'.
Jetzt erstellt man die Ausgangsdateien des Projekts, z.B. mit 'touch'.


   touch example.c
   touch example.c
Zeile 40: Zeile 35:
== Ein einfacher Workflow ==
== 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.
Zuerst erstellt man einen neuen Branch. Dies ist ein seperater Zweig des Projekts, in dem man die Veränderungen, die getätigt werden, zuerst testen kann, bevor sie in den Hauptzweig (üblicherweise 'master') einfließen.


   git branch experimental
   git branch experimental
Zeile 79: Zeile 74:
   git log -p master..bob/master
   git log -p master..bob/master
   git merge bob/master
   git merge bob/master
Zuletzt ist es möglich mittels 'push' seine Änderungen in ein anderes Repository einzupflegen, sofern man die Berechtigungen hat.
  git push bob master
Hiermit würde man in die aktuelle Branch von Bob seine eigenen Änderungen im eigenen 'master'-Branch einfügen, also als ob Bob 'pull' ausführt. Auch hier muss man auf Konflikte achten.
== Weblinks ==
* [http://progit.org/book/ http://progit.org/book/] {{sprache|en}}
* [http://git-scm.com/ http://git-scm.com/] {{sprache|en}}
* [http://www.kernel.org/pub/software/scm/git/docs/everyday.html http://www.kernel.org/pub/software/scm/git/docs/everyday.html] {{sprache|en}}
* [http://de.whygitisbetterthanx.com/ http://de.whygitisbetterthanx.com/] {{sprache|de}}
* [http://stefanimhoff.de/notiz/einstieg-in-git-als-versionskontrollsystem/ http://stefanimhoff.de/notiz/einstieg-in-git-als-versionskontrollsystem/] {{sprache|de}}
== Quellen ==
[1] [http://de.wikipedia.org/wiki/Git http://de.wikipedia.org/wiki/Git] {{sprache|de}}
[[Category:Versionsverwaltung]]
[[en:Git]]

Version vom 17. Juni 2013, 23:51 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. [1] Des Weiteren kann man natürlich nicht nur Software-Projekte, sondern auch Artikel, Lied-Texte etc. mit Git kontrollieren, da das System intern mit 'diff' arbeitet.

Installation

Das Programm ist als git in extra verfügbar, und kann von dort mittels Pacman installiert werden.

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 sollte als erste Konfiguration reichen.

Ein Projekt erstellen

Zuerst erstellt man einen Projektordner.

 mkdir example/
 cd example/

Nun initialisiert man Git.

 git init

Jetzt 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, in dem 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


Zuletzt ist es möglich mittels 'push' seine Änderungen in ein anderes Repository einzupflegen, sofern man die Berechtigungen hat.

 git push bob master

Hiermit würde man in die aktuelle Branch von Bob seine eigenen Änderungen im eigenen 'master'-Branch einfügen, also als ob Bob 'pull' ausführt. Auch hier muss man auf Konflikte achten.


Weblinks

Quellen

[1] http://de.wikipedia.org/wiki/Git