Өзүңүздүн окуяңызды git менен жазуу

Баардыгына салам 🙂 Буйруктар тизмесинин тексти менен уланардан мурун, git 2.16 чыгарылышын патч жөнөткөндөрдүн ар бирине жана колдонуучулардын ар бирине ыраазычылык билдирүү менен белгилегим келет, бардыгы болуп жаңылануулар менен түзөтүүлөрдүн ортосунда 4000 сап бар, бул менин биринчи версиям жөнүндө жакшы сүйлөбөйт, бирок ал сиздин боорукерлигиңизден кабар берет 🙂 Рахмат! Эми мен сизге бир аз сыр айтып берем, ушул убакка чейин мен макала жазууга отуруп, ал жөнүндө көп ойлонгон учур болгон эмес, адатта мен жөн гана катар-катар жазам, андан кийин жакшы кескелдирик алат менин терген каталарымды оңдогон боорукердигим 🙂 ошондуктан ага да рахмат.

Макала жазуу жөнүндө сөз болгондо, бул эң жакшы нерсе эмес, болжолдуу түрдө объективдүү болуп, структурасын түзүп, кичинекей ойлорду жана сын-пикирлерди белгилеш керек ж.б.у.с. ... Эми бул жалпы блогдорго гана тиешелүү эмес, ошондой эле өзүн жакшы көрсөткөн программа 🙂 Бул тапшырма үчүн жана бир нече жыл мурун ядро ​​иштеп чыгууда колдонулган версияны башкаруу программасы менен бир аз кыйынчылыктардан кийин ал төрөлгөн git 🙂

Кайда билүүгө болот git?

Гиттин тегерегиндеги документтердин көлөмү таң калыштуу, эгер орнотуу менен келген адам баракчаларын алсак дагы, бизде окуунун көлөмү чоң болмок. Мен жеке мен git book абдан жакшы иштелип чыккан, ал тургай мен 7-бөлүмдүн айрым сегменттерин котордум, азырынча бир нечесин жетишпей жатам, бирок мага убакыт бер 😛 балким ушул айда ошол бөлүмдөн калган нерселерди которо алам.

Гит эмне кылат?

Git тез, эффективдүү, жөнөкөй жана чоң көлөмдөгү маалыматты колдоо үчүн иштелип чыккан, себеби, ядро ​​коомчулугу аны өзүнүн программалык камсыздоосу үчүн жараткан, бул дүйнөдөгү акысыз программалык камсыздоонун эң ири биргелешкен чыгармаларынын бири жана жүздөгөн салымдары бар бир миллион саптан ашкан код базасында саат.

Gitтин кызыктуу жери - бул анын маалымат котормолорун сактоо ыкмасы. Мурда (башка версияны көзөмөлдөөчү программалар) тарыхтагы бир учурдагы бардык файлдардын компресстерин кабыл алган, мисалы, жасоо камдык. А аткарганда Гит башкача мамиле кылат commit Тарыхтагы бир чекит белгиленет, ал тарыхтагы бир катар өзгөртүүлөр жана эмгектер бар, күндүн аягында, бардык өзгөртүүлөр убакыттын өтүшү менен чогултулуп, файлдар кыскартылышы же нускалардын этаптары катары белгилениши мүмкүн. Мунун баары татаал угулгандыгын билгендиктен, мен сизди сыйкырдуу саякатка супер негизги мисалда келтирем.

Кичинекей калкуляматика долбоору

Эсептөө программасы берилген сандын квадраттарын тапкан программа болот, биз аны С тилинде жасайбыз жана мүмкүн болушунча жөнөкөй болот, андыктан менден коопсуздукту текшерүүнү көп күтпө. Алгач биз репозиторий түзөбүз, мен аны эки ташты бир таш менен өлтүрүү үчүн Гитуб менен жасайм:

Менчик. Christopher Diaz Riveros

Лицензия сыяктуу бир-эки жөнөкөй нерсени коштук (эгерде сиз өз ишиңизди коргогуңуз келсе, анда абдан маанилүү, эгерде аны база катары колдонууну кааласаңыз, анда аларды жыйынтыктар менен бөлүшүүгө мажбур кылыңыз: P)

Эми кымбаттуу терминалыбызга баралы, git clone ичинде жайгашкан репозиторийди жүктөө үчүн жооптуу команда url дайындалган жана биздин компьютерде жергиликтүү көчүрмөсүн түзүү.

Менчик. Christopher Diaz Riveros

Эми текшерип көрөлү git log биздин долбоордун тарыхында эмне болгон:

Бул жерде бизде ар кандай түстөгү көптөгөн маалыматтар бар, аны түшүндүрүүгө аракет кылалы:

биринчи сары сызык - бул "штрих-код", ар бир милдеттенменин өзүнчө уникалдуу идентификатору бар, аны менен сиз көп нерселерди жасай аласыз, бирок биз аны кийинчерээк сактайбыз. Азыр бизде бар HEAD celeste жана master жашыл. Булар "көрсөткүчтөр", алардын милдети - тарыхыбыздын учурдагы ордун көрсөтүү (HEAD) жана биз иштеп жаткан филиал биздин компьютерде (master).

origin/master Интернеттин теңтушу, origin биздин аталышка коюлган демейки аталыш URLжана master сиз иштеп жаткан филиал ... жөнөкөй болуш үчүн, а / бул биздин командада жоктор, бирок Интернеттеги нерселерге шилтемелер.

Андан кийин бизде автор, датасы жана убактысы жана милдеттенменин кыскача мазмуну бар. Бул тарыхтын ошол мезгилинде эмне болгонун карап чыгуу, көптөгөн долбоорлордо абдан маанилүү жана айыпталган көптөгөн маалыматтар бар. Келгиле, буйрук менен эмне болгонун кылдат карап чыгалы git show <código-de-commit>

 

Менчик. Christopher Diaz Riveros

Git show буйругу бизди ушул экранга патч форматында алып барат, анда тарыхта ошол мезгилде эмне кошулганын жана эмне алынып салынгандыгын (эгер бир нерсе алынып салынса) көрө аласыз, азырынча ал бизге жазуулар гана көрсөтөт .gitignore,README.mdLICENSE.

Эми бизнеске киришели, файл жазалы 🙂 тарыхыбыздагы биринчи этапты жаратабыз 😀:

Менчик. Christopher Diaz Riveros

Кыскача айтканда, биз аны аткарууда берилген аргументтердин санын көрсөткөн программа түзөбүз, жөнөкөй 🙂

Менчик. Christopher Diaz Riveros

Бул оңой болду, эми төмөнкү пайдалуу буйрукту карап көрөлү: git status

Менчик. Christopher Diaz Riveros

Кандайдыр бир боорукер жан ээрчүүнү жеңилдетүү үчүн Гитти которду, бул жерде бизде көптөгөн пайдалуу маалыматтар бар, биз башкы филиалда экенибизди, биз менен жаңыланып турганыбызды билебиз origin/master(Github филиалы), бизде байкалбаган файлдар бар! жана аларды кошуу үчүн биз колдонушубуз керек git add, аракет кылалы 🙂

Менчик. Christopher Diaz Riveros

Эми биз жаңы жашыл аянтчага ээ болдук, анда жумушчу аймакка биз кошкон файл көрсөтүлөт. Бул жерде биз милдеттенмени кабыл алуу үчүн өзгөрүүлөрүбүздү топтоштура алабыз, милдеттенме биздин долбоордун бүткүл тарыхында бир этаптан турат, биз милдеттенмени түзөбүз 🙂 git commit

Менчик. Christopher Diaz Riveros

Кыскача түшүндүрүлгөндө, сары сызык биздин милдеттенмебиздин аталышы, мен жөн гана визуалдык маалымдама үчүн main.c деп жазам. Кара текст - мурунку милдеттенмеден бүгүнкү күнгө чейин жасалган өзгөрүүлөрдүн түшүндүрмөсү, биз файлды сактайбыз жана каттоодо сакталган милдеттенмени көрөбүз.

Менчик. Christopher Diaz Riveros

Эми биз долбоорубуздун тарыхын көрөбүз git log

Менчик. Christopher Diaz Riveros

Дагы бир жолу журналда, эми биз жашыл жана кызыл сызыктардын айырмаланып тургандыгын көрө алабыз, себеби биздин компьютерде биз интернетте сакталгандардан жогору турган милдеттенме болуп саналат 🙂 биз ишти улантабыз деп ойлойм, эми мен каалайм деп ойлойм колдонуучу программага бирден ашык аргумент келтирген учурда билдирүү көрсөтүңүз (бул калькуляторду чаташтырат)

Көрүнүп тургандай, биздин программабыз бир топ өстү 😀, эми бизде функция бар imprimir_ayuda() анда эсептөөлөрдү кантип колдонуу керектиги жөнүндө билдирүү көрсөтүлөт жана блокто main() азыр биз менен карап чыгуу if(Программалоо боюнча окуу куралы башка убакта көрө турган нерсе, азырынча эсептөө техникасына 2ден ашык аргумент киргизилсе, программа аяктап, жардам көрсөтүлөрүн гана билүү керек. Келгиле, аны аткаралы:

Менчик. Christopher Diaz Riveros

Көрүнүп тургандай, азыр аргументтердин ордуна жеткирилген номурду басып чыгарат, бирок мен сизге before буга чейин кызыгуу үчүн айткан эмесмин echo $? аткарылган акыркы программанын чыгуу кодун көрсөтөт, башкача айтканда 1 анткени ал ката менен аяктады. Эми биздин окуя кандай өткөнүн карап көрөлү:

Менчик. Christopher Diaz Riveros

Эми биз Githubдан 1 милдеттенме алдыда экенибизди билебиз main.c өзгөртүлдү, келерки милдеттенмени жасайбыз git add main.c  жана андан кийин git commit🙂

Менчик. Christopher Diaz Riveros

Эми функцияны ишке ашырып, текшерүү кодун өзгөрткөндөн кийин, биз бир аз конкреттүү болдук. Эми сакталгандыктан, акыркы өзгөрүүбүздү карап чыгабыз. Биз аны менен көрө алабыз git show HEAD

Менчик. Christopher Diaz Riveros

Эми сиз кызыл жана жашыл сызыктарды көрө аласыз, биз китепкананы коштук stdlib.h, коддун көпчүлүгүн өзгөртүп, функцияны биздин окуяга кошту.

Эми биз журналды көрөбүз: (git log)

Менчик. Christopher Diaz Riveros

Github версиясынан эки милдет алдыда экенибизди байкасак, маркерди бир аз теңдештирип жатабыз 🙂 git push origin master

Ушуну менен, менин милдеттенмелеримди urlге жөнөтүңүз origin бутакта master

Менчик. Christopher Diaz Riveros

Куттуктайбыз! Эми өзгөртүүлөрүңүз Githubда, ишенбейсизби? аны карап чыгалы 😉

Менчик. Christopher Diaz Riveros

Азыр Github 🙂 боюнча 3 милдеттенмебиз бар

на

Эң негизги аспектилерине токтолдук git, эми алар өз долбоорлорунда жөнөкөй жумуш агымын түзө алышат, бул git менен жасала турган ар кандай нерселердин бардыгы дээрлик эч нерсе эмес, бирок бул, албетте, иштеп чыгуучу же блоггер үчүн эң практикалык жана күнүмдүк нерсе. Калькулятордун аягына жете элекпиз, бирок аны дагы бир жолу калтырабыз 😉 Бул жерге келгениңиз үчүн чоң рахмат жана бир нече долбоорго катышууга жардам берет деп ишенем I Салам

 


Макаланын мазмуну биздин принциптерге карманат редакциялык этика. Ката жөнүндө кабарлоо үчүн чыкылдатыңыз бул жерде.

7 комментарий, өзүңүздүкүн калтырыңыз

Комментарий калтырыңыз

Сиздин электрондук почта дареги жарыяланбайт.

*

*

  1. Маалыматтар үчүн жооптуу: Мигель Анхель Гатан
  2. Маалыматтын максаты: СПАМды көзөмөлдөө, комментарийлерди башкаруу.
  3. Мыйзамдуулук: Сиздин макулдугуңуз
  4. Маалыматтарды берүү: Маалыматтар үчүнчү жактарга юридикалык милдеттенмелерден тышкары билдирилбейт.
  5. Маалыматтарды сактоо: Occentus Networks (ЕС) тарабынан уюштурулган маалыматтар базасы
  6. Укуктар: Каалаган убакта маалыматыңызды чектеп, калыбына келтирип жана жок кыла аласыз.

  1.   Pablo ал мындай деди:

    Салам ... Сиз экениңизди билбейм, бирок бул отчеттогу сүрөттөрдү көрө албай жатам ...

    Урматтоо менен

  2.   Pablo ал мындай деди:

    Бул менин браузеримде көйгөй болду. Таарынычтан уят.

  3.   Tecprog дүйнөсү ал мындай деди:

    Мен дагы аны дагы кененирээк окушум керек, мен жаңы келгенмин.

  4.   Билл ал мындай деди:

    Гиттен баштоо үчүн эң сонун макала, бирок мен анын чоо-жайын түшүнүү үчүн жазып алууну сунуштайм.
    Бир-эки нерсе мен үчүн түшүнүксүз:
    кандай вариант бар .Gitignore C кошууБирок, мен аны машыгып жатканда көрө алам деп ойлойм,
    Эмне үчүн git кошуу main.c кийинки git жасала электе дагы бир жолу жасалышы керек, кошуу main.c ал файлды тармактык версия менен салыштырып көр? Көзөмөлдөө үчүн бардык кошулган файлдарды автоматтык түрдө салыштырып жатпайбы?

    1.    ChrisADR ал мындай деди:

      Салам Гильермо 🙂 сизге пайдалуу болуп, суроолоруңузга жооп бергениңиз жакшы болду:

      .gitignore - бул кайсы форматтарды же шаблондорду көрмөксөнгө салуу керектигин айткан файл, бул учурда Cди тандоо .o файлдарды этибарга албай коюуга жана компиляция убагында башка файлдарды жаратууга шарт түзөт, бул жакшы, антпесе сиздин git ар бир компиляцияда дароо жинди болуп кетет. жана андан кийин 🙂 сиз анын шаблонунан чыкпай калган көптөгөн форматтарды мышыктын жардамы менен же тексттик редактор менен текшере аласыз.

      Git жумушчу даракка кошулган ар бир файлды көзөмөлдөп турса дагы, кийинки милдеттенмени кайсы файлдарга киргизээрин атайын тандап, мисал келтириш үчүн, сиздин эмгегиңиз 5 файлды өзгөртө алдыңыз дейли натыйжасын көрүү. Эгер сиз бир аз тактап, ар биринде эмне жасаларын түшүндүрүп бергиңиз келсе, анда git add file1 файлын жасай аласыз; git commit; git add file2; git commit ... .3,4,5; Гит жаса. Ошентип сиздин окуяңыз таза жана өзгөрүүлөр жакшы аныкталган. Эгер сиз бир нерсени өзгөртүшүңүз керек болсо, же башка нерсени өзгөртсөңүз болот (өркүндөтүлгөн темалар), калган нерселерди өзгөртпөстөн, белгилүү бир нерселерди кайтарып же белгилүү бир нерселерди кошсоңуз болот.

      Бул саламдашууга жардам берет деп үмүттөнөм жана сураганыңыз үчүн рахмат

    2.    ChrisADR ал мындай деди:

      PS: git add тармактагы версия менен салыштыруу керек деп айтылбайт, бирок сиздин иш багытыңыздагы мурунку милдеттенмени, эгер ал жергиликтүү (жашыл) болсо, аны ошол менен салыштырат, эгер алыстан болсо (кызыл) ) ал башка менен салыштырылат. Жөн гана тактоо үчүн 😉

      1.    Билл ал мындай деди:

        Perfect, албетте, ал тактайт.