Правила роботи Git
Для того, щоб працювати в команді над загальним проектом, просто необхідно впевнено володіти git. Без цієї навички сенс будь-якого навчання зводиться до 0. Тут представлена невелика збірка основних команд:
Поточний статус
Перед тим, як щось робити з контролем версій, необхідно дізнатися про його стан. Для цього потрібно виконати команду:
git status
Ця команда виводить інформацію про поточний статус контролю версій (звичайний, конфліктна ситуація, в процесі rebase, в процесі merge тощо) що в проекті змінено, що додано, на якій гілці ми працюємо, скільки і які зміни можуть бути закомічені тощо.
Переключиться на гілку
Перед тим, як нам щось робити, необхідно переконатись, що ми знаходимося на правильній гілці. У команді вище ми можемо дізнатися де ми знаходимося, і якщо нам потрібно переключити гілку, то виконати команду:
git checkout develop
Ця команда перемикає нас на гілку "develop".
Отримати зміни
Оскільки ми працюємо у команді, інші учасники можуть заливати свої зміни до загального репозиторію. Щоб їх отримати, достатньо виконати команду:
git pull
Вона буквально каже нам синхронізувати наш локальний репозиторій із віддаленим.
Проте, команда вище не може допомогти у ситуації, коли і у віддаленому та на локальному репозиторіях вже є комміти. Щоб не втратити наші локальні зміни та залити зміни команди, необхідно виконати команду:
git pull --rebase
Ця команда виконує перебазування, тобто вставляє наші зміни поверх змін у віддаленому репозиторії. За допомогою неї, ми можемо без болю синхронізуватись і якщо немає жодних конфліктів, запушити наші зміни у віддалений репозиторій.
Додавання файлів
Після того, як ми залили зміни до локального репозиторію, потім змінили якісь файли, нам необхідно додати їх у контроль версій. Робиться це такою командою:
git add .
Ця команда додає всі файли для контролю версій. Щоб додати окремий файл або папку, потрібно вказати до неї шлях:
git add src/some/path/CppClass.cpp
git add src/some/path/CppClass.h
Можна використовувати регулярні вирази. Наприклад, щоб додати два файли вище за одну команду, можна написати:
git add src/some/path/CppClass.*
Створити коміт
Як тільки ми додали файли в контроль версій, щоб зафіксувати зміни, необхідно створити коміт:
git commit -m "feat: some changes"
В даному випадку ми створили коміт з повідомленням "feat: some changes". Це найшвидший спосіб створити коротке повідомлення. Зазвичай цього достатньо, але якщо в коміті потрібно написати великий текст, то потрібно прибрати прапор -m і просто написати:
git commit
З'явиться текстовий редактор (у git bash або якийсь візуальний) який попросить ввести текст комміта, де перший рядок - заголовок, решта його тіла.
Більше про правила ведення коммітів можна прочитати тут.
Надіслати зміни
Як тільки ми перестали писати код, додали потрібні файли, створили коміт, ці зміни необхідно відправити у віддалений репозиторій. Для цього скористається командою:
git push
Якщо ж ми зіткнемося з конфліктом, коли у віддаленому репозиторії вже є зміни, слід повернутись до пункту вище "git pull --rebase".
Більше інформації
Це лише короткий список найбільш базових команд, які необхідно знати щоб правильно працювати в команді. У консольній версії git команд з керування історією набагато і набагато більше.
Також для контролю версій створено спеціальні GUI. Це програми, що графічно керують контролем версій. До них відносяться GitHub Desktop, SmartGit, GitKraken та інші.