[Versionskontrolle] Git ist toll – Teil 3

22.06.09 | Kategorie: nerdery | 1 Kommentar
Tags: , ,
(No Ratings Yet)
Loading ... Loading ...
git.png

Langsam nervt’s ich weiss. ;) Warum Git toll ist, habe ich in den ersten beiden Einträgen bereits verlautbaren lassen.

Hier nochmal der Hinweis auf iCutMyPorn einem FFmpeg GUI zum Videos schneiden. :)

In diesem Teil geht es jetzt endlich an die Wurscht!

Hier die anderen Teile:

Zunächst mal wie geht man mit Git um? Was braucht man dafür und wo kriegt man’s her?

Installation

Installation eigentlich ganz einfach. Entweder das vorinstallierte Git eures Mac benutzen (ab Leopard). Oder Git von der Homepage herunterladen.

Desweiteren kann man auch einfach hergehen und Git, sofern bereits installiert, einfach direkt von GitHub runterladen/clonen.

git clone git://github.com/git/git.git

Installieren kann man sich das ganze dann mit:

cd git
make prefix=/usr/local all
sudo make prefix=/usr/locall install

Das hat den Vorteil, dass Git auch schön in /usr/local/git Verzeichnis liegt, dort wird auch das bereits mitgelieferte Git installiert.

Konfiguration

Zur Konfiguration gibt es bestimmt viel zu erzählen so kann man sich über sogenannte Global Config.

Basics

Editieren der Datei einfach mit:

mate ~/.gitconfig

In TextMate oder eurem Lieblingseditor. Dort kann man dann seinen globalen Usernamen und Email Adresse eintragen:

[user]
    name = Euer Name
    email = email@euerhaus.com

Geht auch mit:

git config --global user.name "Euer Name"
git config --global user.email 'email@euerhaus.com'

Aliase

Viele richten sich auch gleich Aliase für häufig genutzte Befehle ein. Die hier hab ich mir irgendwo aus dem Netz geklaut. Prägt man sich schnell ein

[alias]
    br = branch
    ci = commit
    co = checkout
    df = diff
    lg = log -p
    st = status
    sta = stash

Natürlich kann man sich auch noch ein paar Aliase in seiner ~/.bash_profile einrichten:

# Git Aliases
alias gb='git branch'
alias gba='git branch -a'
alias gc='git commit -v'
alias gd='git diff | mate'
alias gl='git pull'
alias gp='git push'
alias gst='git status'
alias gk='gitk --all &'

Core Editor

Was für mich noch sehr schick ist, dass man nicht nur vi (*kotz*) benutzen muss sondern man kann auch einen anderen sogenannten Core Editor benutzen. Dieser wird dann standardmässig aufgerufen, wenn man einen beispielsweise einen Commit abschickt.
TM geht auf, man bekommt eine Übersicht aller Änderungen, Commit Message eingeben, speichern, schliessen, fertig.

[core]
    editor = mate

Mitgelieferte Git GUI Lösungen

Inzwischen gibt es nun doch schon einige GUI Lösungen, welche mehr oder weniger ausgereift sind beziehungsweise das eine oder andere Spezialgebiet haben. Erstmal die mitgelieferten Tools.

Git-Gui

Git-Gui kann man einfach aus einem bereits bestehenden Git Repository heraus aufrufen mit:

git gui

Das Tool ist sehr umfangreich und kann eigentlich alles was man benötigt. Jedoch sieht das Programm nicht gerade besonders schön aus.
Form follows Function.

GitK

GitK kann man sich noch ein wenig anpassen. Dazu findet man im Home eine Datei namens .gitk. Diese enthält Informationen darüber wie das Programm angezeigt wird. Im Prinzip hilft es schon die ersten drei Zeilen wie folgt zu ändern:

set mainfont {Monaco 12}
set textfont {Monaco 12}
set uifont {"Monaco Bold" 12}

Und schon erstrahlt GitK im Monaco Glanz.

Weitere Git GUI Lösungen

GitX

“Highly Recommended” sagen viele sei GitX. Installation ganz easy. (Danke nochmal an Patrick sehr nice die folgende Kurzanleitung):

git clone git://github.com/pieter/gitx.git
cd gitx
xcodebuild
cp -R build/Release/GitX.app /Applications/GitX.app

Für GitX kann man sich auch noch ein Command Line Tool installieren, dass man dann einfach aufruft.

GitNub

GitNub ist ebenfalls ein OS X Client. Leider noch ziemlich buggy. Stürzt bei mir jedesmal ab wenn ich irgendeinen Button drücke ist für mich allerdings auch nicht sooo wichtig, da ich bei mir etwas anderes verwende dazu gleich noch mehr.

Git.tmBundle

Natürlich gibt es auch Git Bundle für TextMate, meinem Lieblingseditor. (Du Schnucki, du! :* ) Installation entweder so oder so:

cd ~/Library/Application\ Support/TextMate/Bundles
git clone git://gitorious.org/git-tmbundle/mainline.git

Aufrufen der Bundle Items dann einfach per ⇧+⌃+G.

qgit

Per MacPorts kann man sich noch das Paket qgit nachinstallieren. Habe ich heute aus “Spass” mal gemacht. Benötigt als Abhängigkeit jedoch qt4-mac das hat jetzt auch ein paar Stunde gedauert zu installieren. Also Achtung!

Wie gesagt noch ziemlich ungetestet, deshalb kann ich an dieser Stelle recht wenig dazu sagen.

sudo port install qgit

Meine Lösung

Nachdem ich mich nun auch einige Zeit gegen die Kommandozeile gewehrt habe, stufe ich folgende Lösung als für mich funktionierend ein.

Eine Mischung aus Git.tmBundle, GitK und Kommandozeile funktioniert bei mir ziemlich gut gerade. Mit gitk --all & beziehungsweise einfach nur gk (In meinem Fall! Siehe weiter oben Aliase!) kann man GitK im Hintergrund laufen lassen und sieht immer eine schöne grafische Übersicht der ganzen Branches und der Commits.
Die ganzen Commits, Diffs und so weiter erledige ich direkt aus TextMate heraus mit dem zugehörigen Bundle.

Letztendlich läuft die Kommandozeile im Hintergrund, damit wirklich alle Arbeit sicher gehen kann, die keine der GUI Lösungen zur Verfügung stellt.

Für mich muss ich sagen, hätte ich das TextMate Bundle nicht entdeckt, würde ich Git nicht als so nützlich und sinnvoll empfinden wie es ist.

Hoffe das hilft euch auch ein bisschen weiter. :)

Related posts:

  1. [Versionskontrolle] Git ist toll – Teil 1 Vielleicht haben es ja einige schon mitbekommen die letzten...
  2. [Versionskontrolle] Git ist toll – Teil 2 Beim letzten Eintrag zum Git How To habe ich...
  3. [Mac] Apache, PHP und MySQL Gestern habe ich von einem User auf Twitter gehört,...
  4. [Mac] Typinator den TextExpander Bubble Sound beibringen Ich hab gerade aktuell hier eine Testversion von Typinator...
  5. [TextMate] GTD Bundle Die Todos auf diesem Screenshot sind rein fiktiv! Mein...

1 Comment

have your say

Kommentiere oder setze einen Trackback zu diesem Eintrag.
Neue Kommentare per RSS.

Be nice. Keep it clean. Stay on topic. No spam.

:

:


«
»