Привіт усім! Перш ніж продовжувати тексти списку замовлень, я хочу відзначити випуск git 2.16, подякувавши кожному з тих, хто надіслав виправлення, і кожному з користувачів, загалом у нас було близько 4000 рядків між оновленнями та виправленнями , що не говорить високо про мою першу версію, але говорить про вашу доброту 🙂 Дякую! Зараз я розповім вам маленький секрет, дотепер не було часу, коли я не сідав писати статтю і багато думав над цим, зазвичай я просто пишу підряд, і тоді добра ящірка приймає доброту виправте мої помилки друку 🙂 тому завдяки йому теж.
Це не найкраще, коли ми говоримо про написання статей, мовляв, воно повинно мати мету і будувати структуру, і відзначати невеликі моменти, огляди і т. Д. Тощо ... Тепер це стосується не лише блогів загалом, але є важливим у програмне забезпечення, яке видає себе хорошим 🙂 Для цього завдання та після деяких проблем із програмним забезпеченням для контролю версій, яке використовувалося при розробці ядра кілька років тому, воно народилося git
🙂
Де вчитися git
?
Кількість документації навколо git приголомшує, навіть якщо ми просто взяли сторінки, що додаються до інсталяції, ми мали б прочитати величезну кількість. Я особисто знаходжу git книга досить добре розроблений, навіть я переклав деякі сегменти розділу 7, мені все ще бракує деяких, але дайте мені час 😛 можливо, цього місяця я зможу перекласти те, що залишилося від цього розділу.
Що робить git?
Git створений так, щоб бути швидким, ефективним, простим і підтримувати великі навантаження інформацією, врешті-решт, спільнота ядра створила його для свого програмного забезпечення, яке є однією з найбільших спільних робіт вільного програмного забезпечення у світі і налічує сотні внесків на годину в кодовій основі, що перевищує мільйон рядків.
Цікавим у git є його спосіб підтримки версій даних. За старих часів (інші програми контролю версій) виконували стискання всіх існуючих файлів у певний момент історії, наприклад, створення файлу резервна копія. Git застосовує інший підхід, виконуючи a commit
позначена точка історії, ця точка історії має низку модифікацій і робіт, в кінці дня всі модифікації з часом збираються, і файли отримуються, щоб мати можливість стиснути або позначити як етапи версії. Оскільки я знаю, що все це звучить складно, я збираюся провести вас у магічну подорож на суперосновному прикладі.
Маленький калькулятивний проект
Калькулятика - це програма, яка знайде квадрати заданого числа, ми зробимо це в C, і це буде максимально просто, тому не чекайте від мене великої кількості перевірок безпеки. Спочатку ми збираємося створити сховище, я зроблю це разом з Github, щоб убити двох зайців:
Ми додали кілька досить простих речей, таких як ліцензія (дуже важливо, якщо ви хочете захистити свою роботу, у моєму випадку змусіть їх ділитися результатами, якщо вони хочуть використовувати її як основу: P)
А тепер підемо до нашого дорогого терміналу, git clone
- це команда, яка відповідає за завантаження сховища, розташованого в url
призначити та створити локальну копію на нашому комп’ютері.
Тепер давайте перевіримо git log
що сталося в історії нашого проекту:
Тут ми маємо багато інформації у різних кольорах 🙂 спробуємо пояснити це:
перший жовтий рядок - це "штрих-код коміту", кожен коміт має свій унікальний ідентифікатор, за допомогою якого ви можете робити багато речей, але ми збережемо його на потім. Тепер ми маємо HEAD
Целесте і 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 add main.c потрібно робити знову перед наступним комітом git, чи додає main.c git для порівняння цього файлу з мережевою версією? Хіба це не автоматично порівнює всі додані файли для відстеження?
Привіт Гільєрмо! 🙂 добре, що ви знайшли це корисним, щоб відповісти на ваші запитання:
.gitignore - це файл, який повідомляє git, які формати або шаблони ігнорувати, у цьому випадку вибір C призводить до ігнорування .o-файлів та інших, що генеруються під час компіляції, що добре, бо в іншому випадку ваш git миттєво збожеволіє кожної компіляції та подальших дій 🙂 ви можете перевірити велику кількість форматів, які git опускає у своєму шаблоні C, виконуючи cat або за допомогою текстового редактора.
Незважаючи на те, що git буде відстежувати кожен файл, доданий до робочого дерева, необхідно конкретно вибрати, які файли будуть входити до наступного коміту, щоб навести приклад, припустимо, ваша робота змусила вас змінити 5 різних файлів раніше мати можливість побачити результат. Якщо ви хочете бути дещо конкретнішим і пояснити, що робиться в кожному з них, ви можете зробити git add file1; git commit; git add file2; git commit… .3,4,5; git коміт. Таким чином ваша історія є чистою та чітко визначеними змінами. І якщо вам доведеться щось змінити або повернути (більш просунуті теми), ви можете повернути конкретні речі або додати конкретні речі, не змінюючи решту.
Сподіваюся, це допоможе 🙂 привітання та подяка за запитання
PS: git add не говорить про порівняння з версією в мережі, але з попереднім комітом у вашому напрямку роботи, якщо він був локальним (зеленим), він буде порівнювати його з цим, якщо він був віддаленим (червоним) - порівняти з цим іншим. Просто для уточнення 😉
Ідеально, звичайно це уточнює.