Git чист? Ва барои чӣ лозим аст?
05.11.2021Агар ба мафҳуми он назар кунем: Git ин системаи идоракунии версияҳо мебошад. Яъне, он имконият медихад, ки версияҳои гуногуни коди ҳамон як барнома идора карда шавад.. Ба ғайр аз Git дигар чунин системаҳо низ хастанд, маъмултарини онҳо: Mercurial, Svn, Preforcem, CVS , Bazaar мебошанд. Азбаски GIT истифодабарандагони ниҳоят зиёд дорад ва дар бисёри лоиҳаҳо истифода бурда мешавад донистани он барои барномасоз зарур аст.
Барои ба кор оғоз кардан, бояд аввал барномаро аз сайти https://git-scm.com/ боргирӣ намуд.
Git дар ҳар як лоиҳа дар алоҳидагӣ танзим карда мешавад ва git дар лоиҳабо командаи git init оғоз меёбад. Ҳангоми ин командаро дар терминал навишта ба кор даровардан, дар лоиҳа як папкаи пинҳонии .git пайдо мешавад.
Пеш аз оғози кор бояд номи истифодабаранда ва почтаи электрониро ба git дохил кунем:
git config —global user.name «номи барномасоз«
git config —global user.email «почтаи бпрномасоз»
Чунин командаро одатан як бор дар аввали кори лоиҳа истифода бурда мешаванд. Ва барои дар оянда дидан ё дигар кардани опсияҳо командаи зеринро иҷро кардан лозим аст:
git config ё git config -l
Дар поён дигар командаҳои Git оварда шудаанд:
git —version барои фаҳмидани версияи Git
git —help – ҳангоми ин командаро ба кор даровардан, ҳамаи командаҳои ёрирасони система мебарояд
rm -rf .git – команда барои хориҷ кардани Git аз папкаи лоиҳа
git add <номи файл> — барои ба системаи Git дохил кардани файл
git rm —cached file.html – файли лоиҳа аз системаи Git нест мешавад
git add . – дохил кардани ҳамаи файлҳои лоиҳа ба системаи Git. Нуқта дар ин ҷо маънои ба ҳамаи файлҳо дахл доштани командаро дорад
git rm -r —cached – нест кардани ҳамаи файлҳо аз Git
git commit -m “паём” – барои нигоҳ доштани дигаргуниҳои барнома
git log – барои дидани ҳамаи дигаргуниҳо
git show <коди хэш> — барои дидани тағйироти барнома дар коммити муайян
git restore <номи файл> — барои бекор кардани тағйиротҳо
git commit –amend -m “added smth” – команда барои дигар кардани паёми коммити охирин
git branch – шохаҳои барномаро нишон медиҳад
git branch -M main – номи шоха ба “main” табдил дода шуд
git checkout <номи шоха> – команда барои гузариш ба дигар шоха
git checkout -b <номи шоха> — команда барои сохтани шохаи нав ва гузариш ба он
git branch -d <номи шоха> — шохаро нест мекунад
git push – маълумоти тағйирёфтаро ба Github мефиристад
git pull – тағйиротҳои барномаро аз Github ба компютери локалӣ сабт мекунад
git merge <номи шоха> — барои якҷоя кардани тағйиротҳои ду шохаҳои лоиҳа
git rebase <номи шоха> — шохаҳоро якҷоя мекунад вале бо дигар роҳ
Дар раванди кор бо Git конфликтҳо низ вомехӯранд. Онҳо ҳангоми номувофиқ омадани тағйиротҳо ба вуҷуд меоянд. Яъне, агар дар ду шоха replica uhren дар як қисми коди муайян тағйиротҳои ҳархела бошанд, ҳангоми якҷоя кардани онҳо конфликт ба вуҷуд меояд. Се роҳи ислоҳи конфликтҳо мавҷуд аст:
1)Нигоҳ доштани тағйиротҳои шохаи якум
2)Нигоҳ доштани тағйиротҳои шохаи дуюм
3)Нигоҳ доштани тағйиротҳои ҳарду шоха