Писане на собствени истории с git

Здравейте всички  Преди да продължа с текстовете на списъка със заявки, искам да отпразнувам пускането на git 2.16, като благодаря на всеки от тези, които изпратиха корекция и на всеки от потребителите, общо имахме около 4000 реда между актуализации и корекции, които не говори много добре за първата ми версия, но говори много за вашата доброта  Благодаря! Сега ще ви кажа една малка тайна, досега не е имало момент, в който да не съм седнал да напиша статия и да не съм мислил много за нея, обикновено просто пиша набързо и тогава хубавото lizard е така любезен да коригира правописните ми грешки , така че благодаря и на него.

Това не е най-доброто, когато говорим за писане на статии, предполага се, че трябва да имате цел и да съставите структура, и да маркирате малки точки и ревизии и т.н. и т.н. Сега, това не се отнася само за блоговете като цяло, но е от съществено значение в софтуер, който твърди, че е добър  За тази задача и след някои проблеми със софтуера за контрол на версиите, който беше използван в разработката на ядрото преди няколко години, се роди git

Къде да научите git?

Количеството документация около git е зашеметяващо, дори ако просто взехме ръководствата, придружаващи инсталацията, ще имаме огромно количество четене. Аз лично намирам git книга доста добре проектиран, дори аз преведох някои от сегментите на раздел 7, все още ми остават няколко, но ми дайте време  може би този месец ще мога да преведа това, което е останало от този раздел.

Какво прави git?

Git е проектиран да бъде бърз, ефективен, опростен и да поддържа големи натоварвания от информация, в края на краищата, общността на ядрото го е създала за своя софтуер, който е един от най-големите съвместни произведения на свободен софтуер в света и има стотици вноски на час в кодова база, която надвишава един милион реда.

Интересното при git е начинът му да поддържа версии на данни. В старите дни (други програми за контрол на версиите) правеше компреси на всички съществуващи файлове в даден момент от историята, като правенето на резервно копие. Git използва различен подход, когато изпълнява a commit точка в историята е маркирана, тази точка в историята има поредица от модификации и работи, в края на деня всички модификации се събират с течение на времето и се получават файловете, за да може да се компресират или маркират като етапи на версии. Тъй като знам, че всичко звучи сложно, ще ви заведа на вълшебно пътешествие в един супер основен пример.

Малък калкулатичен проект

Калкулатиката ще бъде програма, която ще намери квадратите на дадено число, ще го направим в C и ще бъде максимално опростено, така че не очаквайте много проверки за сигурност от мен. Първо ще създадем хранилище, ще го направя с 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.

Сега да се заемем с работата, нека напишем файл  ще създадем първия крайъгълен камък в нашата история  :

Собствен. Кристофър Диас Риверос

Накратко, ще създадем програма, която ни показва броя на аргументите, предадени по време на изпълнение, просто 

Собствен. Кристофър Диас Риверос

Това беше лесно  сега нека да разгледаме следната полезна команда: git status

Собствен. Кристофър Диас Риверос

Някаква сърдечна душа е превела git, за да улесни проследяването, тук имаме много полезна информация, знаем, че сме в главния клон, че сме актуализирани с origin/master(клонът на Github), имаме непроследени файлове! и че за да ги добавим трябва да използваме git add, да опитаме 

Собствен. Кристофър Диас Риверос

Сега имаме ново зелено пространство, което показва файла, който сме добавили към работната зона. На това място можем да групираме нашите промени, за да можем да направим ангажимент, ангажиментът се състои от крайъгълен камък в цялата история на нашия проект, ние ще създадем ангажимента  git commit

Собствен. Кристофър Диас Риверос

Накратко обяснено, жълтата линия е заглавието на нашия ангажимент, аз пиша main.c просто за визуална справка. Черният текст е обяснението на промените, направени от предишния комит до сега  запазваме файла и ще видим нашия ангажимент записан в журнала.

Собствен. Кристофър Диас Риверос

Сега ще видим историята на нашия проект с git log

Собствен. Кристофър Диас Риверос

Отново в дневника, сега можем да видим, че зелените и червените линии се различават, това е защото на нашия компютър сме с един ангажимент над тези, съхранени в интернет  нека продължим работата, да предположим, че сега искам да покажа съобщение в случай че потребителят постави повече от един аргумент в програмата (което би довело до объркване на калкулатора  )

Както виждаме, нашата програма се разрасна доста  , сега имаме функцията imprimir_ayuda() което показва съобщение как да се използват изчисления и в блока main() сега правим преглед с if(Нещо, което ще видим в урок по програмиране по друго време, засега е необходимо само да се знае, че ако в калкуламатиката са въведени повече от 2 аргумента, програмата завършва и се показва помощта. Нека го изпълним:

Собствен. Кристофър Диас Риверос

Както можете да видите, сега отпечатва числото, което е било доставено вместо броя на аргументите, но не ви бях казвал за това преди  за любопитните echo $? показва изходния код на последната изпълнена програма, който е 1 защото е приключило по погрешка. Сега нека прегледаме как върви нашата история:

Собствен. Кристофър Диас Риверос

Сега знаем, че сме с 1 ангажимент пред Github, че файлът main.c е модифициран, нека създадем следващия ангажимент чрез git add main.c  и след това git commit

Собствен. Кристофър Диас Риверос

Сега сме малко по-конкретни, тъй като внедрихме функция и сменихме кода за проверка. Сега, когато е запазено, ще прегледаме последната си промяна. Можем да го видим с git show HEAD

Собствен. Кристофър Диас Риверос

Сега можете да видите червените и зелените линии, добавихме библиотеката stdlib.h, модифицира голяма част от кода и добави функцията към нашата история.

Сега ще видим дневника: (git log)

Собствен. Кристофър Диас Риверос

Виждаме, че сме с два ангажимента пред версията на Github, нека изравним резултата малко  за това, което използваме git push origin master

С това казваме, изпращайте ангажиментите ми на url origin на клона master

Собствен. Кристофър Диас Риверос

честито! Сега вашите промени са в Github, не ми вярвате? нека го проверим 

Собствен. Кристофър Диас Риверос

Сега имаме 3-те ангажимента в Github 

Обобщение

Докоснахме най-основните аспекти на git, сега можете да създадете прост работен процес във вашите проекти, това почти не е едно от голямото разнообразие от неща, които могат да се правят с git, но със сигурност е най-практичното и ежедневно нещо за програмист или блогър. Не сме стигнали до края на калкулатора, но ще го оставим за друг път  Много ви благодаря, че стигнахте дотук и се надявам да ви помогне да участвате в различни проекти  Поздрави


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

     Пабло каза той

    Добре ... Не знам дали сте, но не виждам изображенията в този отчет ...

    поздрави

     Пабло каза той

    Това беше проблем с моя браузър. Съжалявам за неудобството.

     Светът на Tecprog каза той

    Все още трябва да го прочета по-подробно, аз съм начинаещ.

     Гилермо каза той

    Страхотна статия за начало с git, въпреки че препоръчвам да си водите бележки, за да разберете детайлите.
    Няколко неща не са ми ясни:
    за какво е опцията Добавете .gitignore Cмакар че предполагам, че ще го видя, когато го практикувам,
    Защо git добавя main.c трябва да се направи отново преди следващия git ангажимент, добавя ли main.c кажете на git да сравнява този файл с мрежовата версия? Не сравнява ли автоматично всички добавени файлове за проследяване?

        ChrisADR каза той

      Здравейте Гилермо good добре е, че ви е било полезно да отговорите на вашите въпроси:

      .gitignore е файл, който казва на git кои формати или модели да се игнорират, в този случай избирането на C причинява .o файлове да бъдат игнорирани и други, които се генерират по време на компилация, което е добре, защото в противен случай вашият git веднага ще полудее на всяка компилация и последващи действия 🙂 можете да проверите големия брой формати, които git пропуска в своя C шаблон, като правите cat или с текстов редактор.

      Въпреки че git ще следи всеки файл, добавен към работното дърво, е необходимо да изберете конкретно кои файлове ще влязат в следващия ангажимент, за да ви даде пример, да предположим, че вашата работа ви е накарала да модифицирате 5 различни файла преди да можете да видите резултата. Ако искате да бъдете малко по-конкретни и да обясните какво се прави във всеки един, можете да направите git add file1; git commit; git add file2; git commit ... .3,4,5; git commit. По този начин вашата история е чиста и промените са добре дефинирани. И в случай, че трябва да промените нещо или да върнете (по-напреднали теми), можете да върнете конкретни неща или да добавите конкретни неща, без да променяте останалите.

      Надявам се, че помага 🙂 поздрави и благодарности за въпроса

        ChrisADR каза той

      PS: git add не казва да се сравнява с версията в мрежата, но с предишния ангажимент във вашата линия на работа, ако е бил локален (зелен), ще го сравни с този, ако е бил отдалечен (червен) ще сравни с това друго. Само за пояснение 😉

          Гилермо каза той

        Перфектно, разбира се изяснява.