Здравейте всички Преди да продължа с текстовете на списъка със заявки, искам да отпразнувам пускането на 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.md
y LICENSE
.
Сега да се заемем с работата, нека напишем файл ще създадем първия крайъгълен камък в нашата история :
Собствен. Кристофър Диас Риверос
Накратко, ще създадем програма, която ни показва броя на аргументите, предадени по време на изпълнение, просто
Собствен. Кристофър Диас Риверос
Това беше лесно сега нека да разгледаме следната полезна команда: 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, но със сигурност е най-практичното и ежедневно нещо за програмист или блогър. Не сме стигнали до края на калкулатора, но ще го оставим за друг път Много ви благодаря, че стигнахте дотук и се надявам да ви помогне да участвате в различни проекти Поздрави
Добре ... Не знам дали сте, но не виждам изображенията в този отчет ...
поздрави
Това беше проблем с моя браузър. Съжалявам за неудобството.
Все още трябва да го прочета по-подробно, аз съм начинаещ.
Страхотна статия за начало с git, въпреки че препоръчвам да си водите бележки, за да разберете детайлите.
Няколко неща не са ми ясни:
за какво е опцията Добавете .gitignore Cмакар че предполагам, че ще го видя, когато го практикувам,
Защо git добавя main.c трябва да се направи отново преди следващия git ангажимент, добавя ли main.c кажете на git да сравнява този файл с мрежовата версия? Не сравнява ли автоматично всички добавени файлове за проследяване?
Здравейте Гилермо 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. По този начин вашата история е чиста и промените са добре дефинирани. И в случай, че трябва да промените нещо или да върнете (по-напреднали теми), можете да върнете конкретни неща или да добавите конкретни неща, без да променяте останалите.
Надявам се, че помага 🙂 поздрави и благодарности за въпроса
PS: git add не казва да се сравнява с версията в мрежата, но с предишния ангажимент във вашата линия на работа, ако е бил локален (зелен), ще го сравни с този, ако е бил отдалечен (червен) ще сравни с това друго. Само за пояснение 😉
Перфектно, разбира се изяснява.