Git
Chapters ▾ 2nd Edition

2.1 Git асослари - Git омборини яратиш

Агар сиз фақат битта бўлимни ўқиб Git билан ишлашни бошламоқчи бўлсангиз у ҳолда бу бўлим айнан сиз учун. Бу ерда Git билан ишлаш жараёнида келиб чиқадиган кўпчилик муаммоларни ҳал қилиш учун керак бўладиган барча асосий командалар кўриб чиқилган. Бу бўлимни ўқиб чиққач сиз омборни созлаш ва қийматлашни, файлларнинг талқинларини бошқаришни бошлаш ва тугатишни, ўзгаришларни тайёрлаш ва фиксирлашни билиб оласиз. Биз шунингдек Git да алоҳида файл ёки уларнинг гуруҳларини қандай қилиб ташлаб кетишни, қандай қилиб тез ва оддийгина йўл билан нотўғри ўзгаришларни бекор қилишни, қандай қилиб лойиҳангиз ва алоҳида юборилганлар (commit) орасидаги тарихни кўришни, қандай қилиб узоқ масофадаги омборга(дан) ўзгаришларни қўшиш(push) (ва олиш(pull))ларни намойиш қилиб берамиз.

Git омборини яратиш

Git омборини яратиш учун иккита асосий ёндашув мавжуд. Биринчи ёндашув – мавжуд кталог ёки лойиҳани импорт қилиш. Иккинчиси – серверда мавжуд бўлган омборни клонлаштириш.

Мавжуд бўлган каталогда омборни яратиш

Агар сиз Git ни мавжд бўлган лойиҳа учун ишлатмоқчи бўлсангиз у ҳолда сизга лойиҳа каталогига ўтиб ва командалар сатрида қуйидагини териш зарур

$ git init

Ушбу команда жорий каталогда ўз ичига Git омборига асосланган – омбор учун керак бўладиган янги .git номли қисм каталогини яратади. Бу босқичда сизнинг лойиҳангиз ҳали – ҳамон талқинлар бошқарувида эмас. (Git Internals бўлимда хозиргина яратилган .git каталог ичидаги файллар ҳақида батафсил ёзилган.)

Агар сиз талқинлар бошқарувига мавжуд бўлган файлни қўшмоқчи бўлсангиз сиз ушбу файларни индекслаб ва биринчи навбатда ўзгаришларни фиксирлашингизга тўғри келади. Буни амалга ошириш учун git add да индексланадиган файлларини кўрсатиб, сўнгра юборишни (commit) кўрсатувчи бир қанча командалардан фойдаланишингиз мумкин:

$ git add *.c
$ git add LICENSE
$ git commit -m 'initial project version'

Биз ушбу командалар нима иш қилаётганини сал кейинроқ таҳлил этамиз. Айни вақтдаги босқичда файллар қўшилган ва бошланғич коммитли сизнинг Git омборингиз мавжуд.

Мавжуд омборни клонлаштириш

Агар сиз мавжуд бўлган омборни нусхасини олишни хоҳласангиз, масалан лойиҳани олишни хоҳласангиз, у ҳолда сизга git clone керак бўлади. Агар сиз Subversion каби бошқа талқинларни бошқариш тизими билан таниш бўлсангиз шунга эътибор берингки команда checkout эмас балки clone. Бу муҳим фарқ – Git амалда сервердаги барча маълумотлар нусхасини олади. git clone – бажарилганда ҳар бир файлнинг ҳар бир талқини сервердаги лойиҳа тарихидан олинади(pulled). Агар сервер диски ишдан чиқса сиз клиентлардаги ихтиёрий клонлардан фойдаланиб, серверни клонлаштириш вақтидаги ҳолатига қайтаришингиз мумкин бўлади (сиз сервернинг ушлаб олгичларининг қисмларини (server-side hooks) йўқотишингиз мумкин, лекин ҳаммасини эмас. Талқинлар бошқарувига қўшилганлари сақланиб қолади. Бу ҳақда Getting Git on a Server бўлимга қаранг.).

Омборни клонлаштириш git clone [url] командаси орқали амалга оширилади. Масалан, агар сиз libgit2 кутубхонасини клонлаштирмоқчи бўлсангиз уни қуйидагича кўринишда бажаришингиз мумкин:

$ git clone https://github.com/libgit2/libgit2

Ушбу буйруқ “libgit2” номли каталогни яратади, унинг ичида .git каталогини яратиб унда яратиш ва қийматлаш ишларини бажаради (инициализациялайди), ушбу омбор учун барча маълумотларни юклаб олади ва омбор учун охирги талқинни яратади (checks out). Агар сиз янги libgit2 каталогига кирсангиз сиз унда ишлатиш ва қўллаш учун ярайдиган лойиҳа файлларини кўрасиз. Агар сиз омборни libgit2 дан бошқа каталогга клонлаштиришни хоҳласангиз буни командалар қаторида қуйидагича кўрсатиш мумкин:

$ git clone https://github.com/libgit2/libgit2 mylibgit

Ушбу команда бундан олдинги команда билан бир хил иш бажаради ва улар орасидаги фарқ шуки, бунда натижавий каталог номи - mylibgit.

Git сиз ишлатишингиз мумкин бўлган бир қанча транспорт протоколларидан фойдалана олади. Аввалги мисолда https://`протоколи ишлатилди. Сиз шунингдек SSH узатиш протоколидан фойдаланувчи `git:// ёки user@server:path/to/repo.git ларни ҳам учратишингиз мумкин. Getting Git on a Server бўлимда сизнинг омборингизга ҳуқуқ яратиш учун серверни созлашнинг ҳамма вариантлари билан биргаликда уларнинг камчиликлари ҳақида маълумотлар келтирилган.