Git - розподілена система контролю версій, що включає в себе набір консольних програм, націлених на фіксування та відстеження змін будь-яких файлів.
Git використовується розробниками по всьому світу оптимізуючи і спрощуючи розробку всередині команди. Працюючи з VCS GIT ви здатні підключатися до віддалених репозиторіїв (наприклад: github) з вашої робочої папки.
Після успішної синхронізації вам надається можливість завантажити репозиторій з github локально на комп'ютер або вивантажити дані на віддалений git репозиторій. Таким чином git є необхідним інструментом для розробника, полегшуючи роботу над конкретним проектом для кількох людей.
Установка git для Windows:
Рекомендується офіційний дистрибутив, який містить в собі графічну оболонку і консоль. Завантажити git клієнт можна перейшовши за посиланням.
Установка git для Linux:
Відкрийте термінал і введіть команду sudo apt-get install git
Установка git для MAC на OS X:
Графічний інсталятор. Завантажити git клієнт можна перейшовши за посиланням.
Перед початком роботи настійно рекомендується провести ініціалізацію вас як користувача.
Після вказівки імені та email ваші дані стануть публічними. Всі ваші дії будуть позначені ім'ям і поштою.
Для ініціалізації сховища, в консолі необхідно ввести команду git init. попередньо обравши директорію для роботи.
Для цієї мети я створив папку site6.local в корені локального сервера open server. Шлях до робочої папки виглядає наступним чином: C: /OpenServer/domains/site6.local. Ви можете створити директорію в будь-якому місці і назвати по своєму бажанню.
Відкриваємо git консоль і переходимо в робочу папку:
Примітка!
В операційній системі Windows, клікнувши всередині робочої папки правою кнопкою миші, в залежності від встановленого git ПО, ви можете викликати git консоль моментально з поточної директорії без потреби вказівки шляху.
Як уже згадувалося раніше, для ініціалізації git сховища вводимо в термінал команду:
У відповідь ми повинні отримати Initialized empty Git repository in [шлях] - це означає що git репозиторій був успішно инициализирован і в корені проекту була створена прихована папка з назвою .git в якій зберігаються git настройки та інші службові файли.
Створимо звичайний текстовий файл test1.txt з будь-яким вмістом (за бажанням).
Вводимо в git консоль команду:
У відповідь ми отримаємо наступне повідомлення:
Нам необхідно додати файл і зробити commit для фіксації змін і вказівки повідомлення (Наприклад: Був створений текстовий файл).
Пропишемо в терміналі git команду додавання конкретного файлу:
git add test1.txt
Для додавання всіх файлів ви можете використовувати команди:
git add.
git add -A
Примітка!
При всі наступні зміни файлу test1.txt вам кожен раз необхідно додавати файл заново.
Перевіримо статус командою:
Тепер повідомлення виглядає інакше:
Після додавання файлу командою git add необхідно провести фіксацію змін командою:
git commit -m "повідомлення"
В результаті отримуємо відповідь:
Примітка!
З кожним наступним зміною в файлі або додаванням нових ви повинні запам'ятати послідовність дій:
git add (додаємо файли) -> git commit -m "" (Фіксуємо стан).
Якщо вміст текстового файлу test1.txt пусте, запишемо в нього: hello world.
Після успішного збереження документа вводимо в консоль:
git status
git add.
git commit -m "Написали привіт світ!"
git log
Скопіюйте повністю хеш самого першого стану в форматі. def8d5cad2193801239d08f5fa3d1d6b1ed033f1
Для відкату змін до конкретного коммітов виконаємо команду:
Створимо папку з назвою ignore_files. Всередині папки створимо текстовий файл file.txt. Якщо з якихось причин потрібно ігнорувати дану папку і не додавати її в git репозиторій, необхідно в корені проекту створити gitignore файл.
Якщо система лається на створення файлу з ім'ям .gitignore, створіть простий текстовий документ і перезберегти його c ім'ям .gitignore.
Зберігаємо документ і командою git status перевіряємо:
Якщо все зробили правильно, у відповідь не побачимо папки яку виключили.
Використання git в бойових умовах: майже завжди означає роботу з віддаленими репозиторіями. Перед підключенням і відправкою даних в git репозиторій, необхідно створити обліковий запис на github.com.
Створюємо новий репозиторій на github:
Переходимо в робочу папку локального сховища та вводимо в консоль команду:
Тепер локальний git репозиторій успішно пов'язаний з віддаленим.
Після успішного підключення до сховища на github можна сміливо відправляти дані командою:
git push origin master
origin - ім'я сховища за замовчуванням.
master - гілка в яку ми хочемо відправити дані (за замовчуванням master - головна гілка).
Після виконання команди git push в віддаленому репозиторії ви повинні побачити всі ваші дані. Зверніть увагу, що ігноровані файли не потрапили в репозиторій на github.
Оскільки змін в віддалений репозиторій ніхто не вносив, приймати нам нічого. Спробуйте створити новий файл або внести правки в уже існуючий потім введіть команду:
git pull origin master
Для скачування git сховища з github досить ввести команду:
Уявіть, що ви є розробником плагіна, у якого з часом будуть виходити важливі оновлення. І щоб не зачіпати стару версію розумніше створити нову. Підсумок: дві гілки з різними версіями. Крім основних офіційних версій можуть бути і підверсії. З git гілками можна проводити маніпуляції, а саме: створення, злиття, видалення.
У терміналі введемо команду на створення нової git гілки:
У відповідь отримуємо імена гілок де * зірочкою вказана поточна активна гілка.
Для переходу на гілку з ім'ям 1.0 необхідно ввести команду:
git checkout 1.0
Тепер створіть в корені проекту папку 1.0 всередині якої текстовий файл з ім'ям 1.0 і внесіть в нього будь-який вміст. На цьому етапі ви повинні знаходиться на гілці з ім'ям 1.0.
git commit -m "Створили папку і файл з ім'ям 1.0 в новій git гілці 1.0"
Перейдіть на гілку master командою:
git checkout master
Спостерігайте за тим, що відбувається в корені проекту, виконуючи переходи з однієї гілки на іншу.
Щоб провести злиття гілки master і 1.0 потрібно перемкнеться на гілку master:
git checkout master
Командою git merge виробляємо злиття двох git гілок:
Потім git гілку з ім'ям 1.0 можна видалити командою:
git branch 1.0 -D
Git конфлікти виникають досить часто коли кілька розробників працюють в різних гілках. Наприклад ви пишете код в гілці master в файлі index.txt а інший розробник пише в цьому ж файлі, але вже в іншій git гілці під назвою test. Розглянемо на прикладі:
Файл index.txt в гілці master з вмістом:
hello з гілки майстер
Файл index.txt в гілці test з вмістом:
hello з гілки тест
Як тільки відбудеться злиття двох гілок відбудеться виняток і в консолі спливе попередження.
Щоб в ручну вирішити конфлікт необхідно відкрити файл index.txt і обговорити з розробником які зміни з двох слід залишити. Після чого зробити додавання і фіксацію коммітов, а непотрібну гілку видалити.