Git
Chapters ▾ 2nd Edition

3.3 Git да тармоқланиш - Тармоқларни бошқариш

Тармоқларни бошқариш

Сиз тармоқларни яратишни, бирлаштиришни, ўчиришни машқ қилиб кўрдингиз. Энди сизга тармоқлар билан доимий ишлаганингизда ас қотадиган тармоқларни бошқаришда ишлатиладиган ускуналар билан танишиш вақти етиб келди.

git branch командаси қўшиш ва ўчиришдагига қараганда кўпроқ иш бажаради. Параметрларсиз чақирилганда сизда мавжуд бўлган тармоқлар рўйҳатини оласиз:

$ git branch
  iss53
* master
  testing

master тармоғидан олдинда турган * белгисига эътибор беринг: у айни вақтда қайси тармоқда турганингиздан далолат беради (яъни HEAD кўрсаткичи қайси тармоқни кўрсатиб турганини). Бу шуни англатадики, агар сиз хозир фиксирлашни амалга оширсангиз master тармоғи охирги ўзгаришларингиз билан олдинга силжийди. Ҳар бир тармоқдаги охирги фиксирлашларни кўўриш учун git branch -v командасини теринг:

$ git branch -v
  iss53   93b412c fix javascript issue
* master  7a98805 Merge branch 'iss53'
  testing 782fd34 add scott to the author list in the readmes

Яна бир фойдали имкониятлардан бири ҳисобланган тармоқларни рўйҳатида сиз турган тармоққа бирлаштирилганларини ёки бирлаштирилмаганларини қолдиришни таминловчи опциялар бор. Улар --merged ва --no-merged лардир. Сиз турган тармоқ билан бирлаштирилган тармоқлар рўйҳатини кўриш учун git branch --merged командасини ишлатинг:

$ git branch --merged
  iss53
* master

Сиз бироз олдин iss53 тармоқ билан бирлаштириш ишини амалга оширганлигингиз боис у рўёҳатда мавжуд. Ушбу рўйҳатдаги * белгисиз турган барча тармоқларни git branch -d командаси билан бемалол ўчиришингиз мумкин. Сабаби ушбу тармоқлардаги ўзгаришлар бошқа тармоқларга бирлаштирилиб бўлинган.

Иш жараёни давом этаётган ва сиз ишлатаётган тармоқ билан бирлаштирилмаган барча тармоқларни кўриш учун git branch --no-merged командасини беринг:

$ git branch --no-merged
  testing

Сиз қолган тармоқларни кўрасиз. Ушбу тармоқ ҳали бирлаштирилмаган ишларга эга бўлгани боис уни git branch -d командаси билан ўчириш хатоликка олиб келади:

$ git branch -d testing
error: The branch 'testing' is not fully merged.
If you are sure you want to delete it, run 'git branch -D testing'.

Агар сиз ҳақиқатдан ҳам тармоқни ўчиришни хоҳласангиз ва тармоқдаги ишларни йўқолишига рози бўлсангиз кўрсатмада кўрсатилганидек сиз уни -D опцияси ёрдамида бажаришингиз мумкин.