Facebook
Twitter
Google+
Kommentare
0

Git + GitHub first steps

Juten tach,

heute will ich mich ein bisschen über die verteilte Versionsverwaltungssoftware Git, dem sozialen Netzwerk GitHub und wie man beides praktisch verbinden kann auslassen.
Die üblichen Geschichten über Linus Torvalds und seinen Kernel, sowie Gründe die für eine Versionsverwaltungssoftware sprechen, lasse ich mal weg und schalte mich gleich mal bei folgendem praktischen Beispiel ein:
Nehmen wir mal an ihr habt gerade ein tolles Stück Code in Form einer PHP Klasse geschrieben und wollt diese nun auf GitHub veröffentlichen und fragt euch jetzt “what to do?”

1. Registrierung bei GitHub
Die Registrierung erfolgt unter http://github.com/ und verläuft eigentlich ziemlich unkompliziert.
Pricing and Signup => Create a free account (sollte für den Anfang genügen) => Daten eingeben => create bzw. new Repository

Anschließend sollte so was in der Art erscheinen:

Nun müssen wir noch einen SSH Public Key hinterlegen, dazu geht ihr unter Account Settings => SSH Public Keys

Falls ihr nicht wisst, wie das mit den Public Keys läuft, sei euch diese Hilfe empfohlen http://help.github.com/linux-key-setup/.
Nachdem nun der Public Key hinterlegt wurde, wars das erst mal auf GitHub, nun machen wir uns an Git.

2. Git installieren
Hier exemplarisch unter einer Debian basierenden Linux Distribution:

pew@ubuntop:~$ apt-get install git-core

Für Mac und Windows User stehen auch graphische Installer zur Verfügung u.a. http://code.google.com/p/git-osx-installer/ und http://code.google.com/p/msysgit/.

3. Allgemeine Einstellungen
Nachdem Git nun erfolgreich installiert wurde, solltet ihr ein paar Allgemeine Einstellungen vornehmen.
Dazu verwenden wir das bei Git enthaltene Tool git config.

Benutzerdaten

Zunächst solltet ihr Git euren Benutzernamen und eure Emailadresse mitteilen, da diese Informationen bei jedem Commit verwendet werden.

pew@ubuntop:~$ git config --global user.name "Patrick Einwag"
pew@ubuntop:~$ git config --global user.email patrick@dev-talk.info

Durch die Option –global werden diese Einstellungen für jedes Repository das ihr anlegt benutzt.

Editor

Ihr könnt festlegen welchen Editor Git verwenden soll, wenn ihr aufgefordert werdet irgendwelche Texte z.B. Commitmessages einzugeben.
Falls ihr keinen angebt wird der Standardeditor in den meisten Fällen der VI bzw. VIM verwendet.

pew@ubuntop:~$ git config --global core.editor myfavouriteeditor

Diff Tool

Auch kann festgelegt werden, welches Programm zum diffen von merge Konflikten benutzt werden soll.

pew@ubuntop:~$ git config --global merge.tool vimdiff

Überprüfen der Einstellungen

Wenn man sich nochmal einen Überblick über die Einstellungen machen will, ruft man dazu einfach git config –list auf:

pew@ubuntop:~$ git config --list
user.name=Patrick Einwag
user.email=patrick@dev-talk.info
merge.tool=vimdiff

4. Der erste Checkin
Nachdem wir nun einen Account bei GitHub angelegt, Git installiert und eingestellt haben, können wir uns nun an unseren ersten push auf unser Repository machen.
Nehmen wir an unsere Klasse liegt unter /var/www/devTalkTest, dann initialisieren wir Git und fügen unser GitHub Repository als remote hinzu:

pew@ubuntop:~$ cd /var/www/devTalkTest/
pew@ubuntop:/var/www/devTalkTest$ git init
Initialized empty Git repository in /var/www/devTalkTest/.git/
pew@ubuntop:/var/www/devTalkTest$ git remote add test git@github.com:dev-talk/Example-Repository.git 

Anschließend führen wir git status aus, um zu sehen was sich in unserem Ordner geändert hat:

pew@ubuntop:/var/www/devTalkTest$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	myclass.php
nothing added to commit but untracked files present (use "git add" to track)

Um nun unsere Datei myclass.php tracken zu können, fügen wir sie mittels git add hinzu:

pew@ubuntop:/var/www/devTalkTest$ git add myclass.php
pew@ubuntop:/var/www/devTalkTest$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#	new file:   myclass.php
#

Wie wir sehen, erkennt Git nun dass es Dateien zum comitten gibt, dies wollen wir auch gleich machen:

pew@ubuntop:/var/www/devTalkTest$ git commit -m "Erster Commit"
[master (root-commit) ea0e1c2] Erster Commit
 1 files changed, 3 insertions(+), 0 deletions(-)
 create mode 100644 myclass.php
pew@ubuntop:/var/www/devTalkTest$ git status
# On branch master
nothing to commit (working directory clean)

So nun gibt es nichts mehr zu comitten und wir können das File auf unser GitHub Repository pushen:

pew@ubuntop:/var/www/devTalkTest$ git push test master
Counting objects: 3, done.
Writing objects: 100% (3/3), 241 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github.com:dev-talk/Example-Repository.git
 * [new branch]      master -> master

Nachdem alles geklappt sollte nun auf GitHub ein ähnliches Ergebnis zu sehen sein:

Glückwunsch eure Klasse ist nun auf github.com ;) und wir sind am Ende dieses kleinen Tutorials.

Über den Autor

devtalk

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen