Қайдҳои муқаддимавии зарурӣ:
- Мақоларо дар бораи git хонед, такрор кунед ва фаҳмед . Ин кӯмак мекунад, ки ҳама чиз аллакай насб карда шудааст ва ба кор омода аст.
- Intellij IDEA насб кунед.
- Як соати вақти шахсиро барои азхудкунии пурра ҷудо кунед.
Лоиҳаро ба таври маҳаллӣ клон кунед
Дар ин ҷо ду вариант вуҷуд дорад.- Агар шумо аллакай ҳисоби Github дошта бошед ва хоҳед, ки чизеро дертар тела диҳед, беҳтар аст, ки лоиҳаро ба худ кашед ва нусхаи худро клон кунед. Чӣ тавр сохтани чангак - ман дар ин мақола дар боб намунаи ҷараёни кори форингро тавсиф кардам .
- Аз анбори ман клон кунед ва ҳама чизро ба таври маҳаллӣ бидуни қобorяти тела додани ҳама чиз ба server иҷро кунед. Баъд аз ҳама, ин анбори ман хоҳад буд))
-
Суроғаи лоиҳаро нусхабардорӣ кунед:
-
Intellij IDEA-ро кушоед ва Гирифтан аз назорати versionро интихоб кунед:
-
Суроғаро ба лоиҳа нусхабардорӣ ва часбонед:
-
Аз шумо хоҳиш карда мешавад, ки лоиҳаи Intellij IDEA эҷод кунед. Мо пешниҳодро қабул мекунем:
-
Азбаски системаи сохтан вуҷуд надорад ва ин доираи мақола нест, Эҷоди лоиҳаро аз манбаъҳои мавҷуда интихоб кунед :
-
Минбаъд як расми равғанӣ чунин хоҳад буд: Мо клонкуниро ҷудо кардем, акнун мо метавонем ба атроф нигоҳ кунем.
Аввалан ба Intellij IDEA ҳамчун Git UI нигаред
Ба лоиҳаи клоншуда боз як бодиққат назар андозед: аллакай дар он ҷо шумо метавонед дар бораи системаи идоракунии version маълумоти зиёде гиред. Аввалин панели идоракунии version дар кунҷи чапи поён аст. Дар он шумо метавонед ҳама тағиротҳои маҳаллиро пайдо кунед ва рӯйхати ӯҳдадориҳоро гиред (аналоги git log). Биёед ба лексияи Log гузарем . Ҷузъи муайяни визуалӣ мавҷуд аст, ки барои фаҳмидани он ки раванди рушд чӣ гуна гузашт. Масалан, шумо мебинед, ки фorали нав бо сарлавҳаи иловашуда ба txt сохта шудааст , ки баъдан ба шохаи асосӣ муттаҳид карда шудааст. Агар шумо ӯҳдадориро пахш кунед, дар кунҷи рост шумо метавонед ҳама маълумотро дар бораи ӯҳдадорӣ бинед: ҳама тағиротҳо ва метамаълумоти он. Илова бар ин, шумо метавонед бубинед, ки чӣ гуна тағирот ворид карда шудааст. Гузашта аз ин, низоъ дар он ҷо ҳал карда шуд. IDEA низ инро ба таври комил нишон медиҳад. Агар шумо файлеро, ки дар давоми ин ӯҳдадорӣ тағир дода шудааст, ду маротиба клик кунед, мо мебинем, ки конфликт чӣ гуна ҳал шудааст: Ба назар мерасад, ки дар тарафи рост ва чап ду versionи як файл мавҷуд буд, ки бояд ба як файл якҷоя карда шаванд. Ва дар мобайн натиҷаи ниҳоӣ аст. Вақте ки лоиҳа дорои бисёр фorалҳо, ӯҳдадориҳо ва корбароне мебошад, ки дар лоиҳа кор мекунанд, шумо бояд алоҳида аз рӯи фorал (фorал), корбар (корбар) ва сана (сана) ҷустуҷӯ кунед: Ва охирин чизе, ки ман мехоҳам пеш аз оғоз шарҳ диҳам, ин аст, ки чӣ гуна фаҳмидани мо дар кадом сохаем. Ман ба шумо як дақиқа вақт медиҳам, ки ҷустуҷӯ кунед ... шумо онро ёфтед? Оё шумо таслим мешавед? :D Дар кунҷи рости поёнии тугмаи Git: master мавҷуд аст , ки дар он пас аз Git: он нишон медиҳад, ки кадом шохаи лоиҳа айни замон фаъол аст. Агар шумо тугмаро пахш кунед, шумо метавонед бисёр корҳои муфидро иҷро кунед: ба фorали дигар гузаред, фorали нав эҷод кунед, номи мавҷударо иваз кунед ва ғайра.Кор бо репозиторий
Тугмаҳои муфид
Барои идомаи кор, шумо бояд якчанд тугмаҳои хеле муфидро дар хотир доред:- ctrl + t - тағироти охиринро аз анбори дурдаст гиред (git pull).
- ctrl + k - ҳама тағиротҳоеро, ки дар айни замон дастрасанд, анҷом диҳед/намоиш диҳед. Ин ҳам файлҳои пайгирӣнашуда ва ҳам тағирёфтаро дар бар мегирад (ба мақолаи ман дар бораи git нигаред, дар он ҷо тавсиф шудааст) (git commit).
- ctrl + shift + k фармонест барои ворид кардани тағирот ба анбори дурдаст. Ҳама ӯҳдадориҳое, ки ба таври маҳаллӣ сохта шудаанд ва ҳоло дар дурдаст нестанд, барои push (git push) пешниҳод карда мешаванд.
- alt + ctrl + z - баргардонидани тағирот дар як файли мушаххас ба ҳолати охирини эҷодшуда дар анбори маҳаллӣ. Агар шумо тамоми лоиҳаро дар кунҷи чапи боло интихоб кунед, шумо метавонед тағиротро ба ҳамаи файлҳо баргардонед.
Мо чӣ мехоҳем?
Барои кор кардан мо бояд скрипти асосиро, ки дар ҳама ҷо истифода мешавад, азхуд кунем. Вазифа аз он иборат аст, ки функсияҳои навро дар як фorали алоҳида амалӣ созед ва онро ба анбори дурдаст тела диҳед (пас шумо бояд дархости дигари ҷалбро барои фorали асосӣ эҷод кунед, аммо ин аз доираи мақолаи мо берун аст). Ман чӣ кор кардан лозим аст?-
Ҳама тағиротҳоро дар фorали асосӣ (масалан, усто) гиред.
-
Дар асоси ин чизи асосӣ, барои кори худ як алоҳида эҷод кунед.
-
Функсияи навро амалӣ кунед.
-
Ба фorали асосӣ равед ва санҷед, ки дар вақти кор ягон тағйироти нав ба амал омадааст. Агар ин тавр набуд, ҳама чиз хуб аст ва агар ин тавр бошад, мо амалҳои зеринро иҷро мекунем: мо ба фorали корӣ меравем ва тағиротро аз шохаи асосӣ ба мо бармегардонем. Агар ҳама чиз хуб бошад, пас олӣ. Аммо шояд ихтилофҳо вуҷуд дошта бошанд. Ва онҳоро метавон пешакӣ бе талафи вақт дар анбори дурдаст ҳал кард.
Чунин ба назар мерасад, ки чаро ин корро мекунед? Ин як қоидаи шакли хуб аст, ки пас аз тела додани фorали шумо ба анбори маҳаллӣ пайдо шудани муноқишаҳоро пешгирӣ мекунад (албатта, эҳтимолияти мавҷудияти онҳо вуҷуд дорад, аммо он хеле камтар мешавад).
- Тағироти худро ба анбори дурдаст тела диҳед.
Тағиротро аз serverи дурдаст қабул кунед?
Ман тавсифро ба README бо ӯҳдадории нав илова кардам ва мехоҳам ин тағиротҳоро гирам. Интихоб байни якҷоякунӣ ва барқарорсозӣ пешниҳод карда мешавад, агар тағирот ҳам дар анбори маҳаллӣ ва ҳам дурдаст ворид карда шуда бошад. Якҷояро интихоб кунед. ctrl + t -ро ворид кунед : Дар натиҷа, шумо мебинед, ки README чӣ гуна тағир ёфтааст, яъне. тағиротҳо аз анбори дурдаст кашида шуданд ва дар кунҷи рости поён шумо метавонед ҳама тафсилоти тағиротҳои аз server воридшударо бубинед.Дар асоси устод фorали нав эҷод кунед
Дар ин ҷо ҳама чиз оддӣ аст.-
Ба кунҷи рости поён равед ва ба Git: master клик кунед , + Фorали нав -ро интихоб кунед .
Қуттии санҷиши фorалро тарк кунед ва номи фorали навро нависед. Барои ман он readme-texempter хоҳад буд .
Пас аз ин, Git: master ба Git: readme-improver иваз мешавад .
Моделсозии кори параллелӣ
Барои пайдо шудани низоъҳо, касе бояд онҳоро эҷод кунад :D Ман README-ро бо супориши нав тавассути браузер таҳрир мекунам ва ба ин васила кори мувозиро тақлид мекунам. Мегӯянд, ки касе дар вақти корам ба ҳамон файли ман тағйирот ворид кардааст, ки боиси ихтилоф мешавад. Аз сатри 10 калимаи «комилан»-ро хориҷ мекунам.Функсияи худро амалӣ кунед
Вазифа аз он иборат аст, ки README -ро тағир диҳед ва ба мақолаи нав тавсиф илова кунед, яъне кор дар git тавассути Intellij IDEA анҷом дода мешавад. Инро илова кунед: Тағирот ба анҷом расид, акнун шумо метавонед ӯҳдадорӣ эҷод кунед. Тугмаи hotkey -ро пахш кунед ctrl + k , мо мегирем: Пеш аз сохтани ӯҳдадорӣ, шумо бояд бодиққат ба он чизе, ки дар ин тиреза пешниҳод карда мешавад, назар кунед. Ман махсусан тирчаеро илова кардам, то ба шумо ба куҷо нигоҳ карданро нишон диҳад. Дар он ҷо бисёр чизҳои ҷолиб мавҷуданд. Дар бахши Паёми ӯҳдадорӣ мо матни ӯҳдадориро менависем ва барои сохтани он, шумо бояд тугмаи Commit -ро пахш кунед . Ман то ҳол наёфтам, ки чӣ тавр ин корро бо тугмаи hotkey иҷро кунам, бинобар ин, агар касе онро ёбад, бинависед, ман хеле шод хоҳам шуд. Мо менависем, ки README тағир ёфтааст ва ӯҳдадорӣ эҷод мекунад. Дар натиҷа, огоҳӣ дар кунҷи поёни чап бо номи ӯҳдадорӣ пайдо мешавад:Санҷед, ки фorали асосӣ тағир ёфтааст
Мо супоришро иҷро кардем, кор мекунад, тестҳо навиштем, ҳамааш хуб аст. Аммо пеш аз он ки ба server тела диҳед, шумо бояд тафтиш кунед, ки дар ин муддат дар фorали асосӣ ягон тағирот ба амал омадааст ё не. Чӣ тавр ин метавонад рӯй диҳад? Ин хеле содда аст: пас аз шумо ба касе супориш дода шуд ва ин кас онро аз шумо тезтар иҷро кард. Бинобар ин, мо ба фorали усто мегузарем. Барои ин, шумо бояд дар кунҷи рости поён он чизеро, ки дар расми зер нишон дода шудааст, иҷро кунед: Дар шохаи асосӣ ctrl + t -ро пахш кунед , то тағироти охирини онро аз serverи дурдаст гиред. Агар шумо ба чӣ гуна тағйиротҳо нигаред, шумо метавонед ба осонӣ пай баред, ки чӣ рӯй дод: Тавре ки шумо мебинед, калимаи «пурра» хориҷ карда шуд. Шояд касе аз маркетинг буд, ки тасмим гирифт, ки онро ин тавр навиштан мумкин нест ва ба таҳиягарон вазифаи навсозии онро додааст. Мо ҳоло versionи охирини фorали усторо дар маҳал дорем. Биёед ба readme-improver баргардем . Ҳоло мо бояд тағиротро аз шохаи асосӣ ба мо дубора асос кунем. Мо чунин мекунем: Агар шумо ҳама чизро бо ман дуруст риоя карда бошед, натиҷа бояд дар файли README ихтилоф бошад: Дар ин ҷо инчунин маълумоти зиёде мавҷуданд, ки бояд фаҳманд ва азхуд карда шаванд. Ин рӯйхатро нишон медиҳад (дар ҳолати мо як элемент) файлҳое, ки ихтилоф доранд. Мо метавонем се вариантро интихоб кунем:- аз они худро қабул кунед - танҳо тағиротро аз readme-improver қабул кунед.
- онҳоро қабул кунед - танҳо тағиротро аз устод қабул кунед.
- якҷоя кардан - барои худ интихоб кунед, ки чӣ бояд нигоҳ дошта шавад ва чӣ хориҷ карда шавад.
- Инҳо тағирот аз readme-improver мебошанд.
- Натиҷа. Дар айни замон он ҳамон тавре аст, ки пеш аз тағйирот буд.
- Тағирот аз фorали асосӣ.
Тағиротро ба serverи дурдаст пахш кунед
Қадами навбатӣ ин тела додани тағирот ба serverи дурдаст ва эҷод кардани дархости кашидан аст. Барои ин, танҳо ctrl + shift + k -ро пахш кунед , ки пас аз он мо мегирем: Дар тарафи чап рӯйхати ӯҳдадориҳое, ки ба анбори дурдаст интиқол дода нашудаанд ва дар тарафи рост ҳамаи файлҳое ҳастанд, ки ба анбори дурдаст интиқол дода шудаанд. тагьир ёфт. Ҳамааш ин аст: Push -ро клик кунед , ва шумо хурсанд мешавед :) Агар пахш бомуваффақият анҷом дода шавад, дар кунҷи рости поёни чунин огоҳинома пайдо мешавад:Қисми бонус
Ман дар аввал намехостам эҷоди дархости кашиданро ба мақола илова кунам, аммо аз ин сабаб он қадар пурра нест. Аз ин рӯ, мо ба анбори GitHub меравем (агар он аз они шумо бошад)))) ва бубинед, ки GitHub аллакай медонад, ки ба мо чӣ пешниҳод кунад: -ро клик кунед Муқоиса кунед ва дархостро кашед ва сипас Эҷоди дархостро пахш кунед . Аз сабаби он, ки мо ихтилофҳоро пешакӣ ҳал кардем, ҳоло ҳангоми эҷоди дархости кашидан, шумо метавонед онро фавран якҷоя кунед: Ин ҳама чизест, ки ман мехостам ба шумо ин дафъа бигӯям. Албатта, ман танҳо дарро кушода, як қисми хурдеро ба шумо нишон додам. Боқимондаро худатон дар ҳолати зарурӣ пайдо мекунед. Одатан, ман шуморо даъват мекунам, ки ба ҳисоби GitHub-и худ обуна шавед , ки дар он ман лоиҳаҳоро дар асоси технологияҳои гуногуне, ки дар кор истифода мебарам, ҷойгир мекунам. Ман ба наздикӣ як дастоварди шахсӣ доштам - лоиҳаи ман аллакай аз ҷониби зиёда аз сад таҳиягарон баҳо дода шудааст. Ин як эҳсоси бениҳоят шодмонист, ки касе он чизеро, ки шумо сохтаед, истифода мебарад. Ва онро барои хуб истифода мебарад.истинодҳои муфид
- JavaRush: Оғози кор бо Git: дастури муфассал барои шурӯъкунандагон
- GitHub: Лоиҳаи намоишӣ барои кор бо
- JavaRush: Таҳлor стратегияҳои шоха дар Git
- JetBrains: Анбори Git насб кунед
- Habr: Git rebase
- GitHub: Ҳисоби ман
GO TO FULL VERSION