Упатство:Вовед во git

Од Сподели wiki
Прејди на прегледникот Прејди на пребарувањето

Текстот е во главно превод на официјалниот водич кој се наоѓа на [1]


Упатството ќе ви објасни како да увезите нов проект во git, да направите промени, и да ги споделите со други.

Доколку сакате да го користите git само за да ја добиете најновата верзија од некој проект, може повеќе да бидете заинтересирани во првите двe поглавја од упатството за корисници на git [2].

Ако сакате да добиете подетална документација за некоја опција на git, напишете

man git-opcija

пример, за „git pull“ напишете

man git-pull

Увезување на нов проект

Доколку имате архива со некој проект, на пример project.tar.gz можете да го контролирате со git на следниот начин

tar xzf project.tar.bz
cd project
git init 

git ќе ви одговори со

Initialized empty Git repository in .git/

Тоа е тоа, нели беше лесно? Сега кажете му на git да зачува снимка од содржината на сите датотеки во тековниот директориум со опцијата add

git add .

Сега снимката е зачувана во во привремена област на премин која git ја нарекува „index“. Промените перменантно можете да ги зачувате со

git commit

Ова ќе ве праша за commit порака (во вашиот едитор), која треба да е кратка и јасна. Честито, ја зачувавте вашата прва ревизија во git.

Правење промени

Променете некои датотеки, потоа додајте ги нивните променети содржини во индексот

git add datoteka1 datoteka2 datoteka3

Сега сте спремни за commit. Можете да видите кои промени сте ги направиле во diff-стил со git diff

git diff --cached

(без --cached, git ќе ви ги покажи промените кои се направени, но не се додадени во индексот). Можите да добиете и кратко резиме со git status. На крај, перманентно зачувајте ги промените со

git commit

Наместо рачно да пишите git add претходно, двете операции можете да ги направите во еден чекор со

git commit -a

меѓутоа, ова нема да ги препознае новите датотеки.

Белешка за commit пораките: Добро е пораките да ги започнете со една кратка линија (помалце од 50 карактери) која ќе ги резимира пораките проследена со една празна линија и подетален опис на промените. На пример, алатките кои ги претвараат commit операциите во е-пошта ја користат првата линија како наслов а останатиот дел како тело на пораката.

Git се грижи содржина, не датотеки

Многу системи за контрола на ревизии имаат „add“ команда која му кажува на системот да започни да води грижа за таа датотека. „Add“ командата на git прави нешто попросто и помоќно: git add се користи за нови и изменети (веќе згрижени) датотеки, и во двата случаја прави снимка од датотеките, ја додава таа содржина во индексот, спремна за commit.

Гледање на историјата на проектот

Кога и да било, можете да ја разгледата историјата на проектот преку дневникот со

git log

Доколку сакате да видите компленти diff-ови на секој чекор користете

git log -p

Често доста помага краток поглед на промените

git log --stat --summary

Работење со гранки

Едно git складиште (repository) може да содржи повеќе гранки. На пример, за да направите нова гранка со име „experimental“

git branch experimental

Ако сега напишите

git branch

ќе добиете листа на гранките во проектот, пример

  experimental
* master

experimental гранката е таа што штотуку ја направивте, а master е предефинираната гранка која за вас се прави автоматски при иницијализрањето на проектот. Астерискот (*) ви кажува на која гранка моментално работите, за промена на гранката

git checkout experimental

што ќе ве однеси во experimental гранката. За да направите промени и да се вратите во master гранката

git commit -a
git checkout master

Промената во оваа гранка не е видлива бидејќи ја направивте во experimental гранката. Тука направете други промени па

git commit

Сега имате две гранки кои по нивното разделување имаат различни промени. За да ги споите (што многу често ќе сакате да го правите) напишете

git merge experimental

што ја спојува тековната (master) гранка со experimental. Доколку промените имаат конфликти, ќе има маркери на деловите кои се конфликтни

git diff

ќе ви поможи. Откако рачно ќе ги решите конфликтите направете commit со

git commit -a

Доколку сакате графички приказ на промените напишете

gitk

Сега можите да ја избришете experimental гранката со

git branch -d experimental