Git referencia útmutató site buildereknek

asrob képe

Szerkesztőségi megjegyzés: A dokumentumon folyamatosan dolgozunk.
A cél, leírni a site buildereknek, hogyan tudják használni a gitet a fejlesztés segítéséhez.
Ez az útmutató megváltozik ha a drupal.org folytatja a gitre való költözést.
Az útmutató leír egy javasolt módszert a gittel való munkához.
Lehet, és kellhet, korrekció saját helyzethez és igényekhez.
Jelenleg az első fázisban van a drupal.org gitre költöztetése kapcsán és ez az útmutató is azt tükrözi.

Mielőtt elkezdenéd
Kezdés előtt meg kell érteni néhány elosztott verzió kezelő rendszerekkel, mint amilyen a git is, kapcsolatos koncepciót. Kérlek olvasd el a Git Introduction-t és győzödj meg róla hogy megvannak az alapvető ismeretek mielőtt folytatod, különös figyelmet fordítva a koncepciókra, branchekre és tagekre.

Alapok

Mutatkozzunk be a gitnek

$ git config --global user.name "Keresztnév Vezetéknév"
$ git config --global user.email "[email protected]"

Szerezzünk be egy helyi másolatot a Drupal core repository-ból

A következő utasítások a http://drupal.org/node/707484 alapján készültek.
A Drupal core-t a githubon tükrözzük, amíg az infrastruktúra lehetővé nem teszi a Drupal gittel történő kezelését a drupal.org-on.
Első alkalommal, amikor beállítod a gitet a gépen, szükség van egy helyi másolatra a Drupalból hogy dolgozni tudj vele. Futtasd az alábbi parancsot:

$ git clone git://github.com/drupal/drupal.git drupal-git

Nem szükséges ehhez github regisztráció.

Ez eltarthat néhány percig, mert letölti a Drupal történetét a kezdetektől fogva. Ha egyszer ez megtörtént, nem kell újra megtenni.

A helyi branchek listáját a következő paranccsal érheted el.

$ git branch
* CVS

Csak egy helyi branchünk van amelyet úgy hívnak hogy CVS. Az összes távoli branch listáját az alábbi parancssal érheted el.

$ git branch -r
origin/CVS
  origin/DRUPAL-3-0
  origin/DRUPAL-3-00
  origin/DRUPAL-4-0
  origin/DRUPAL-4-1
  origin/DRUPAL-4-2
  origin/DRUPAL-4-3
  origin/DRUPAL-4-4
  origin/DRUPAL-4-5
  origin/DRUPAL-4-6
  origin/DRUPAL-4-7
  origin/DRUPAL-5
  origin/DRUPAL-6
  origin/HEAD -> origin/CVS
  origin/drop

Ezek az összes távoli branchek. Esetünkben csak olvashatóak.
Hogy lássuk az összes branchet, távolit és helyit, használjuk az alábbi parancsot.

$ git branch -a

Helyi branch létrehozása

Ez az információ a http://books.tag1consulting.com/scalability/drupal/start/staging és http://www.forwardthinkingdesign.com/blog/manage-and-deploy-drupal-code-... információin alapul.
A master branchhez nem nyúlunk hozzá. A branchet arra fogjuk használni, hogy frissen tartsuk a Drupal core kiadásokkal.
A mi helyi Drupal másolatunk létrehozásával fogunk kezdeni. Ez attól függ, milyen verziójú Drupallal dolgozunk.
A Drupal 6-ért, átváltunk egy helyi branchre amely követi a DRUPAL-6 branch-et a github repository-ban.

$ git branch --track drupal6 origin/DRUPAL-6
Branch drupal6 set up to track remote branch DRUPAL-6 from origin.

Ez létrehozza a helyi branchet 'drupal6' néven a távoli drupal-6 branch alapján. Ez a branch tartalmazza a legújabb változtatásokat a DRUPAL-6 branchhez, még az utolsó kiadás óta beküldötteket is.
Hogy átváltsunk arra a branchre használjuk az alábbi parancsot.

$ git checkout drupal6

A parancsunk a háttérben létrehoz egy branchet.

Branch létrehozása a contrib moduloknak és sminkeknek

Ahelyett hogy változtatásokat eszközölünk a drupal6 branchünkben, hagyjuk hogy a branch kizárólagosan kövesse a core változásait. Inkább létrehozunk egy újabb branchet a drupal6-ból.
Először is, legyünk biztosak hogy a helyes branchben vagyunk.

$ git branch
  CVS
* drupal6

A csillag - * - jelöli hogy a drupal6 branchünkben vagyunk. Így menjünk és hozzuk létre a contrib branchet.

$ git checkout -b drupal6contrib
Switched to a new branch 'drupal6contrib'

Ez egyrészt létrehozza a branchet és rögtön át is vált rá.
Ha futtatjuk a git branch parancsot látni fogjuk az összes helyi branchünket. * - A csillaggal megjelölt jelzi azt a branchet amelyben éppen vagyunk és dolgozunk.

CVS
  drupal6
* drupal6contrib

Ebben a szakaszban hozzáadjuk a contrib moduljainkat és sminkjeinket. Minden modult és sminket amit használunk az összes oldalon, le kell tölteni amíg dolgozunk ebben a branchben. Először, létrehozzuk a könyvtárakat, amelyek tartalmazzák a contrib moduljainkat és sminkjeinket.

$ mkdir sites/all/modules
$ mkdir sites/all/themes

A Drupal contrib repository nem érhető el egészében a gitben, így használjuk a hagyományos módszerünket a modulok megszerzésére.
Ha a drush telepítve van, [ha nem, akkor telepíteni kell], letöltheted a modulokat és sminkeket a drush segítségével.

$ drush dl views
$ drush dl zen

Ellenkező esetben, letöltjük és kicsomagoljuk a modulokat a sites/all/modules könyvtárba vagy a sites/all/themes könyvtárba.

Ebben a szakaszban már módosításokat eszközölhetünk a working tree-be. [A working tree a neve a könyvtárnak amelyben dolgozunk.] El kell mentenünk ezeket a változtatásokat a drupalcontrib branchbe.
A git 2-stage commit eljárást használ. Elsőnek hozzá kell adni a fájlokat az indexhez.

$ git add .

A '.' fontos. Ez adja hozzá az összes változást amit csináltunk az indexhez.
Az indexben egyszer tudunk commit-ot csinálni.

$  git commit -m "Views modul es Zen smink hozzaadva"

Ez az alakja, egy változás elmentéséhez. Bármilyen jelentősebb változás után mentened kellene. Ebben az esetben mi mindig menteni fogunk, mikor hozzáadunk egy modult vagy sminket.

Branch létrehozása az oldaladnak

Mostmár, elkezdhetünk dolgozni az oldalunkon, ebben a szakaszban létrehozunk egy branchet az oldalunknak.

$ git checkout -b mysite
Switched to a new branch 'mysite'

Mostmár telepíthetjük a drupalt és dolgozhatunk az oldalunkon.
Ha változtatásokat eszközöltünk a kódban, győződjünk meg róla, hogy elmentettük a változásokat.
Ne feledkezzünk meg visszaváltani a drupal6contrib branchbe, hogy hozzáadjuk a contrib modulokat és sminkeket abban az branchben.

Több webhely.

Ha több weboldalt fejlesztünk, 2 megközelítés áll rendelkezésünkre.
Branch per oldal, vagy multisite.

Branch minden oldalhoz

Ennek a módszernek akkor van értelme, ha nem használod a Drupal multisite lehetőségét, és nincs szükséged több webhely egy kódbázisból történő egyidejű futtatására.
Ez is megkönnyíti az oldalak egyénileg történő telepítését.
Váltsunk vissza a drupal6contrib branchre.

$ git checkout drupal6contrib

Branch létrehozása az új oldalnak.

$ git checkout -b mysite2

Most folytathatjuk a munkát ebben az branchben.

Core frissítése.

Korábban, mikor létrehoztuk a helyi drupal6 branchünket, tettünk róla, hogy az 'követett' branch legyen. Ez triviálissá teszi a távoli DRUPAL-6 branch naprakész követését.
[Megjegyzés: Ez a módszer azt jelenti, hogy mindig meglesz a DRUPAL-6 branch legutolsó commitja.]
Először, váltsunk vissza a helyi drupal6 branchbe.

$ git checkout drupal6

Most megszerezhetjük a legutolsó módosításokat a központi repository-ból.

$ git pull

Azután, összefésüljük az új változtatásokat a drupal6contrib branchbe.

$ git checkout drupal6contrib
$ git merge drupal6

Végül összefésüljük a változtatásokat a 'mysite' branchbe.

$ git checkout mysite
$ git merge drupal6contrib

Contrib modulok és sminkek frissítése.

Mikor szükséges frissítenünk a contrib moduljainkat és sminkjeinket, a munkát a 'drupal6contrib' branchünkben kezdjük.

$ git checkout drupal6contrib

Használhatjuk a drusht hogy megszerezzük a legutolsó frissítéseket.

$ drush update

Ezt követően el kell mentenünk ezeket a változtatásokat.

$ git add .
$ git commit -m "A modulok a legutolso verziora frissitve"

Újra össze kell fésülnünk ezeket a frissített modulokat a 'mysite' branchbe.

$ git checkout mysite
$ git merge drupal6contrib

Multisite

Ha a webhelyeidet együtt fogod közzétenni egyetlen szerveren, akkor használhatod a Drupal multisite lehetőségét sok webhely közös branchben történő fejlesztéséhez. Ennek megvan az az előnye, hogy egyszerűbb ezeket a webhelyeket egyszerre frissíteni, és csökkenti a szerveren található kód mennyiségét. Ez különösen hasznos a PHP opcode cache optimalizációhoz.

Eredeti olvasmány itt található: http://drupal.org/node/803746
Fordította: asrob, köszönet a hibajavításért/útmutatásért: Boobaanak, DenesSzabonak, Nevergonenak, Webappznak, Yorknak.