Az előző post-ban a Git szerver telepítésének menetét mutattam be, valamint létrehoztunk egy test nevű repo-t. Most azt nézzük meg, hogy hogyan tudjuk a kliens gépünket működésre bírni a szerverrel.
Windows
Első nekifutásra, töltsük le a Git klienst innen:
http://git-scm.com/download/winAmikor ez a post íródik, a jelenlegi verzió az 1.8.0. A telepítés tökéletesen egyszerű, a next-next-finish technikát követve lépkedjünk végig és telepítsük fel. A biztonság kedvéért mellékelek pár képernyőmentést a fontosabb lépésekről.
Lépjünk be a Git Bash-be:
Sokan összekeverik ezt a Windows parancssor ablakával. Ez NEM AZ! :)
Mac
Töltsük le a klienst innen:
http://git-scm.com/download/macA jelenlegi verzió 1.8.1. Indítsuk el a DMG file-t, majd a git-1.8.1-intel-universal-snow-leopard.pkg telepítőt futtasuk le. FIGYELEM! Ez tökéletesen megfelelő a 10.7.x és 10.8.x verziónál is OSX-nél! A telepítő neve megtévesztő!
A GUI-t pedig innen:
http://mac.github.com/Figyelem! A GitHub GUI csak 10.7 és újabb rendszereken fog futni! Akinek régebbi, pl. Snow Leopard rendszere van, annak javaslom a SourceTree programot. Szintén ingyenes, nagyon sokat tud és nem utolsó sorban, szép, ízléses a felülete. :)
Ha feltelepítettük őket, akkor indítsuk el a GitHub programot és a GitHub menüből biztonság kedvéért telepítsük a Command line Utility-t (Install Command Line Utility…). Ez után állítsuk be az adatainkat (név és email cím) a Preferences… menüben.
SSH kulcs generálása
Az alábbi lépések szinte teljesen megegyeznek a Windows és Mac rendszereken. Az egyetlen különbség nyilván az útvonalkezelés. A példa a Windows-os útvonalat mutatja. Pontosítanék! Mac-en nincs külön Git Bash, hanem egyszerűen csak egy Terminal-t kell elindítani.
Lépjünk be a gépünk SSH kulcsokat tároló könyvtárába, ami a felhasználói fiókunkban van, ha létezik:
cd ~/.ssh
Ha nem létezne, hozzuk létre. Ez után nézzük meg, hogy van-e már valami generált kulcsunk.
ls
Amennyiben van id_rsa kezdetű file vagy file-ok a könyvtárban, akkor mentsük el egy könyvtárba és töröljük le innen őket:
mkdir key_backup cp id_rsa* key_backup rm id_rsa*
Hozzuk létre az új RSA kulcsunkat (értelemszerűen a saját email címünkkel):
ssh-keygen -t rsa -C "your_email@youremail.com"
Ekkor a „Generating public/private rsa key pair.” üzenetet kapjuk, majd egy kérdést, hogy hova generálja majd a kulcsot:
Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]
Nyugodtan nyomhatunk egy enter, így majd a jelenlegi könyvtárba hozza létre, ami az .ssh
Ezek után következik egy újabb kérdés, hogy mit szeretnénk passphrase-nek. Ha szeretnénk jelszót, írjunk be, de akár hagyhatjuk üresen is egy enter-rel:
Enter passphrase (empty for no passphrase): [Type a passphrase] Enter same passphrase again: [Type passphrase again]
Ha ezzel megvagyunk, elkezdődik a generálás, aminek a végeredménye valami hasonló lesz:
Your identification has been saved in /c/Users/you/.ssh/id_rsa. Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub. The key fingerprint is: 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@youremail.com
Publikus kulcs elhelyezése a NAS-on
Most az elkészült id_rsa.pub file-t át kell másolni a NAS-ra. Ezt megtehetjük egy tetszőleges share könyvtárba. Ez után lépjünk be a NAS-ra SSH-n root-ként és másoljuk a publikus kulcsunkat át a git user home könyvtárába egy .ssh könyvtárba (amit előtte létrehozunk), authorized_keys néven.
mkdir -p /volume1/home/git/.ssh mv /volume1/ahovafelmásoltadanasra/id_dsa.pub /volume1/home/git/.ssh/authorized_keys
Ha már van ilyen nevű file, akkor csak fűzzük hozzá az új kulcsot. De vigyázzunk, hogy a formátumot megtartsuk és egy szóköz se kerüljön bele feleslegesen!
(Irodalom: http://forum.slicehost.com/index.php?p=/discussion/1846/multiple-authorized_keys-in-authorized_keys-file-newbie/p1)
Adatok beállítása a kliens oldalon
Lépjünk vissza a Git Bash-re és állítsuk be az adatainkat, illetve a szükséges környezeti változókat.
Ezen a néven fogjuk a commit-okat elküldeni a szerverre:
git config --global user.name "Your Name Here"
Ezzel az email-címmel. Ez legyen azonos, amit korábban már megadtunk az kulcsgenerálásnál. Természetesen minden gépen más kulcsot kell generálni, amin más email cím is lehet, de nem kötelező. Tegyük fel, hogy a Windows-os kulcs a munkahelyi gépünkhöz tartozik a munkahelyi email címmel, a Mac-es pedig az otthoni, a privát email címünkkel.
git config --global user.email "your_email@youremail.com"
A következő beállítás lehetővé fogja tenni, hogy a git push kiadásakor nem kell megadnunk paraméterként, hogy melyik branch-re vonatkozzon a művelet. Mindig az éppen aktuálisra lesz értendő, amelyikben éppen állunk a Bash-ben.
git config --global push.default current
Ez a beállítás pedig a merge-ölés során keletkező ideiglenes file-okat fogja törölni, amire nem lesz szükség a későbbiekben.
git config --global mergetool.keepBackup false
Repository klónozása NAS-ról a lokális gépünkre
A példa ismét Windows-os útvonalakat használ!
Lépjünk a C: meghajtó gyökérkönyvtárába, majd hozzunk létre egy git nevű könyvtárat és lépjünk bele (amúgy tetszőleges helyen is létrehozhatjuk, tetszőleges néven):
cd c: cd / mkdir git cd git
Töltsük le a test repo-t a gépünkre, avagy klónozzuk.
git clone ssh://git@nasIPcímeVagyNeve/volume1/git/test
vagy
git clone git@nasIPcímeVagyNeve:/volume1/git/test
Ha minden jól megy, A következő vagy hasonló üzenetet kapjuk:
Initialized empty Git repository in /data/t/.git/ Cloning into 'test'... warning: You appear to have cloned an empty repository.
Yeah! Készen vagyunk, sikerült! A gépünkön van a test repo-nk! :)
A következő post-ban a merge-höz szükséges 3rd party programot konfiguráljuk be, ami lényegesen egyszerűbbé teszi az életünket. :) Érdekel? Kattints!
P4Merge telepítése és konfigurálása