Өзіңіздің тарихыңызды git арқылы жазу

Барлығына сәлем 🙂 Тапсырыс тізіміндегі мәтіндермен жалғастырмас бұрын, мен git 2.16 шығарылымын патч жібергендердің әрқайсысына және пайдаланушылардың әрқайсысына алғыс білдіру арқылы атап өткім келеді, барлығы бізге жаңартулар мен түзетулер арасында 4000 жол ұнады. , бұл менің бірінші нұсқам туралы жақсы айтпайды, бірақ бұл сіздің мейірімділігіңіз туралы айтады 🙂 Рахмет! Енді мен сізге кішкене құпияны айтайын, осы уақытқа дейін мен мақала жазуға отырмаған және бұл туралы көп ойланған кез болған емес, әдетте мен қатарынан жазамын, содан кейін жақсы кесіртке мейірімділікті алады менің қателіктерімді түзету correct сондықтан оған да рахмет.

Мақала жазу туралы әңгіме қозғаған кезде бұл ең жақсы нәрсе емес, оның мақсаты болуы керек, құрылымын құруы керек, ұпайлар мен шолуларды белгілеуі керек және т.с.с. ... Енді бұл жалпы блогтарға ғана қатысты емес, сонымен бірге өзін жақсы деп көрсететін бағдарламалық жасақтама this Осы тапсырма үшін және бірнеше жыл бұрын ядро ​​жасау кезінде қолданылған нұсқаны басқару бағдарламалық жасақтамасында біраз қиындықтар туындағаннан кейін ол дүниеге келді git 🙂

Қайда оқуға болады git?

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

Гит не істейді?

Git жылдам, тиімді, қарапайым және үлкен көлемдегі ақпаратқа қолдау көрсетуге арналған, өйткені ядролық қауымдастық оны өзінің бағдарламалық жасақтамасы үшін құрды, бұл әлемдегі ең үлкен еркін бағдарламалық жасақтаманың бірі және жүздеген бағдарламалары бар бір миллион жолдан асатын кодтық базадағы сағатына жарналар.

Git-тің қызықты жағы - бұл деректер нұсқаларын сақтау тәсілі. Бұрын (басқа нұсқаларды басқару бағдарламалары) тарихтың кез-келген нүктесінде барлық қолданыстағы файлдардың компресстерін қабылдады, мысалы сақтық көшірме. А орындау кезінде Git басқаша көзқарасқа ие commit тарихтағы нүкте белгіленеді, тарихтағы нүкте бірқатар өзгертулер мен жұмыстарға ие, күннің соңында барлық модификациялар уақыт бойынша жинақталады және файлдар қысу немесе маңызды кезең ретінде белгілеу үшін алынады. нұсқалары. Мұның бәрі күрделі екенін білетіндіктен, мен сізді сиқырлы саяхатқа керемет мысалда келтіремін.

Кішкентай калькулитика жобасы

Калькулиматика берілген санның квадраттарын табатын программа болады, біз оны С тілінде орындаймыз және ол мүмкіндігінше қарапайым болады, сондықтан менен көптеген қауіпсіздік тексерулерін күтуге болмайды. Алдымен біз репозиторий жасаймыз, мен Github-пен екі құсты бір таспен өлтіру үшін жасаймын:

Меншікті. Кристофер Диас Риверос

Лицензия сияқты бірнеше қарапайым нәрселерді қостық (егер сіз өз жұмысыңызды қорғағыңыз келсе, өте маңызды, егер менің ойымша, оларды негіз ретінде қолданғысы келсе, оларды нәтижелерімен бөлісуге мәжбүр етіңіз: P)

Енді қымбат терминалға барайық, git clone ішінде орналасқан репозиторийді жүктеуге жауап беретін команда url тағайындалды және компьютерде жергілікті көшірмені жасаңыз.

Меншікті. Кристофер Диас Риверос

Енді тексерейік git log біздің жобаның тарихында не болды:

Мұнда бізде әртүрлі түстерде көптеген ақпарат бар, оны түсіндіруге тырысайық:

бірінші сары сызық - бұл «штрих-кодты орындау» әрқайсысының өзінің ерекше идентификаторы бар, оның көмегімен сіз көп нәрсені жасай аласыз, бірақ біз оны кейінірек сақтаймыз. Енді бізде бар HEAD celeste және master жасыл. Бұл «көрсеткіштер», олардың қызметі біздің тарихымыздың қазіргі орнын көрсету (HEAD) және біз компьютерде жұмыс істейтін филиал (master).

origin/master Интернеттің аналогы, origin - бұл бізге тағайындалған әдепкі атау URLжәне master - сіз жұмыс істейтін филиал ... оны қарапайым етіп түсіну үшін / бұл біздің командада жоқ, бірақ Интернетте бар сілтемелер.

Содан кейін бізде автор, күні мен уақыты және міндеттемелердің қысқаша мазмұны бар. Бұл тарихтың сол кезеңінде болған оқиғаларға шағын шолу, көптеген жобаларда өте маңызды және айыпталған көптеген ақпарат бар. Бұйрықта не болғанын егжей-тегжейлі қарастырайық git show <código-de-commit>

 

Меншікті. Кристофер Диас Риверос

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

Енді іске кірісейік, файл жазайық let's біз өз тарихымыздағы алғашқы кезеңді жасаймыз 😀:

Меншікті. Кристофер Диас Риверос

Қысқаша, біз оны орындаған кезде келтірілген аргументтердің санын көрсететін бағдарлама жасаймыз, қарапайым 🙂

Меншікті. Кристофер Диас Риверос

Бұл оңай болды, енді келесі пайдалы команданы көрейік: git status

Меншікті. Кристофер Диас Риверос

Кейбір мейірімді жүректер іздеуді жеңілдету үшін git-ті аударды, мұнда бізде көптеген пайдалы ақпараттар бар, біз шебер филиалда екенімізді білеміз, біз жаңарамыз origin/master(Github филиалы), бізде анықталмаған файлдар бар! және оларды қосу үшін біз пайдалануымыз керек git add, көрейік 🙂

Меншікті. Кристофер Диас Риверос

Енді бізде жаңа жасыл алаң пайда болды, онда жұмыс аймағына біз қосқан файл шығады. Бұл жерде біз міндеттемелерді қабылдау үшін өзгерістерді топтастыра аламыз, міндеттеме жобамыздың бүкіл тарихындағы маңызды кезеңнен тұрады, біз міндеттеме жасаймыз are git commit

Меншікті. Кристофер Диас Риверос

Қысқаша түсіндірілген, сары сызық - бұл біздің міндетіміздің атауы, мен main.c деп тек визуалды сілтеме үшін жазамын. Қара мәтін - бұл алдыңғы міндеттемелерден бастап осы уақытқа дейін енгізілген өзгертулердің түсіндірмесі, біз файлды сақтаймыз және біз өз міндеттемелерімізді тізілімде сақтаймыз.

Меншікті. Кристофер Диас Риверос

Енді біз жобамыздың тарихымен танысамыз git log

Меншікті. Кристофер Диас Риверос

Тағы да журналда жасыл және қызыл сызықтардың әр түрлі болғанын көреміз, өйткені біздің компьютерімізде біз интернетте сақталғаннан жоғары міндеттеме болып табыламыз work біз жұмысты жалғастырамыз, енді мен а пайдаланушы бағдарламаға бірнеше аргумент енгізген жағдайда хабарлама (бұл калькуляторды шатастырады)

Көріп отырғанымыздай, біздің бағдарламамыз айтарлықтай өсті 😀, енді бізде функция бар imprimir_ayuda() онда есептеулерді қалай қолдану керектігі туралы хабарлама және блокта көрсетіледі main() қазір біз шолу жасаймыз if(Бағдарламалау оқулығынан басқа уақытта көретін бір нәрсе, әзірге есептеу машинасына 2-ден көп аргумент енгізілсе, бағдарлама аяқталып, анықтама көрсетілетінін білу керек. Оны орындайық:

Меншікті. Кристофер Диас Риверос

Қазір көріп отырғаныңыздай, ол дәлелдер санының орнына жеткізілген нөмірді басып шығарады, бірақ мен сіздерге бұрын not айтқым келген жоқ echo $? соңғы орындалған бағдарламаның шығу кодын көрсетеді, ол 1 өйткені ол қатемен аяқталды. Енді әңгімеміздің қалай өрбігенін қарастырайық:

Меншікті. Кристофер Диас Риверос

Енді біз Github-тен 1 файлға алда екенімізді білеміз main.c өзгертілді, келесі міндеттемені жасай отырып жасайық git add main.c  содан кейін git commit🙂

Меншікті. Кристофер Диас Риверос

Енді біз функцияны іске асырып, тексеру кодын өзгерткендіктен, біршама нақтырақ болдық. Енді сақталғаннан кейін біз соңғы өзгерісті қарастырамыз. Біз оны көре аламыз git show HEAD

Меншікті. Кристофер Диас Риверос

Енді сіз қызыл және жасыл сызықтарды көре аласыз, біз кітапхананы қостық stdlib.h, кодтың көп бөлігін өзгертті және функцияны біздің тарихымызға қосты.

Енді біз журналды көреміз: (git log)

Меншікті. Кристофер Диас Риверос

Біз Github нұсқасынан екі орында екенімізді байқаймыз, біз маркерді сәл теңестіреміз 🙂 ол үшін біз қолданамыз git push origin master

Осымен, менің міндеттемелерімді URL мекен-жайына жіберіңіз origin филиалда master

Меншікті. Кристофер Диас Риверос

Құттықтаймыз! Енді сіздің өзгертулеріңіз Github-та, сенесіз бе? қарастырып көрейік 😉

Меншікті. Кристофер Диас Риверос

Қазір бізде Github-тағы 3 міндет бар

Резюме

Біз ең негізгі аспектілерді қозғадық git, енді олар өз жобаларында қарапайым жұмыс процесін жасай алады, бұл git арқылы жасалуы мүмкін барлық алуан түрлі нәрсе, бірақ бұл әзірлеуші ​​немесе блогер үшін ең практикалық және күнделікті нәрсе. Біз калькулятордың соңына жеткен жоқпыз, бірақ біз мұны басқа уақытқа қалдырғалы жатырмыз here Мұнда келгеніңіз үшін көп рахмет және бұл сізге бірнеше жобаларға қатысуға көмектеседі деп сенемін 😀 Сәлемдесу

 


Мақаланың мазмұны біздің ұстанымдарымызды ұстанады редакторлық этика. Қате туралы хабарлау үшін нұқыңыз Мұнда.

7 пікір, өз пікіріңізді қалдырыңыз

Пікіріңізді қалдырыңыз

Сіздің электрондық пошта мекен-жайы емес жарияланады. Міндетті өрістер таңбаланған *

*

*

  1. Деректерге жауапты: Мигель Анхель Гатан
  2. Деректердің мақсаты: СПАМ-ны басқару, түсініктемелерді басқару.
  3. Заңдылық: Сіздің келісіміңіз
  4. Деректер туралы ақпарат: заңды міндеттемелерді қоспағанда, деректер үшінші тұлғаларға жіберілмейді.
  5. Деректерді сақтау: Occentus Networks (ЕО) орналастырған мәліметтер базасы
  6. Құқықтар: Сіз кез-келген уақытта ақпаратты шектей, қалпына келтіре және жоя аласыз.

  1.   Пабло дижо

    Сәлем ... Сіз екеніңізді білмеймін, бірақ мен бұл есептегі суреттерді көре алмаймын ...

    тілекпен

  2.   Пабло дижо

    Бұл менің браузерімде мәселе болды. Тітіркендіргіштен ұят.

  3.   Tecprog әлемі дижо

    Мен оны толығырақ оқып шығуым керек, мен жаңадан келдім.

  4.   Гильермо дижо

    Гиттен басталатын керемет мақала, бірақ егжей-тегжейлі түсіну үшін жазбалар жасауға кеңес беремін.
    Маған екі нәрсе түсініксіз болды:
    қандай нұсқа бар .Gitignore C қосыңызМен оны жаттығу жасағанда көремін деп ойлаймын,
    Неге git қосу main.c келесі git жасалмас бұрын қайтадан жасалуы керек, main.c add git файлды желілік нұсқамен салыстыру керек пе? Ол автоматты түрде қадағалау үшін барлық қосылған файлдарды салыстыра ма?

    1.    ChrisADR дижо

      Сәлем, Гильермо 🙂 сұрақтарыңызға жауап беру үшін сізге пайдалы болғаны жақсы:

      .gitignore - бұл қандай форматтарды немесе үлгілерді елемеу керектігін айтатын файл, бұл жағдайда C-ді таңдау .o файлдарының еленбеуіне себеп болады және басқалары компиляция кезінде жасалады, бұл жақсы, өйткені әйтпесе сіздің gitіңіз бірден есінен адасады. әр компиляция мен бақылаудың of мысалға немесе мәтіндік редакторға кіру арқылы оның шаблонында кететін көптеген форматтарды тексеруге болады.

      Git жұмыс ағашына қосылған әр файлды қадағалап отыратынына қарамастан, келесі файлға қандай файлдар кіретінін нақты таңдау керек, мысалы сізге мысал келтіру үшін сіздің жұмысыңыз сізге 5 түрлі файлды өзгертуге себеп болды делік. нәтижесін көре білу. Егер сіз неғұрлым нақты болғыңыз келсе және әрқайсысында не істелетінін түсіндіргіңіз келсе, онда git add file1 файлын жасай аласыз; git жаса; git қосу файл2; git жаса ... .3,4,5; жаса. Осылайша сіздің тарихыңыз таза және өзгерістер анықталған. Егер сізге бірдеңе өзгерту керек болса немесе қайтып оралу керек болса (неғұрлым жетілдірілген тақырыптар), сіз белгілі бір заттарды қалпына келтіре аласыз немесе қалғандарын өзгертпестен белгілі бір заттарды қосасыз.

      Бұл сәлемдесуге және сұрағандарыңызға рахмет деп үміттенемін

    2.    ChrisADR дижо

      PS: git add желідегі нұсқамен салыстыру туралы айтпайды, бірақ сіздің жұмысыңыздағы алдыңғы міндеттемемен, егер ол жергілікті (жасыл) болса, оны солмен салыстырады, егер ол қашықта болса (қызыл) болса басқасымен салыстыру. Тек түсіндіру үшін 😉

      1.    Гильермо дижо

        Керемет, әрине ол нақтылайды.