-
1. Вступ
- 1.1 Про систему контролю версій
- 1.2 Коротка історія Git
- 1.3 Основи Git
- 1.4 Git, зазвичай, тільки додає дані
- 1.5 Три стани
- 1.6 Командний рядок
- 1.7 Інсталяція Git
- 1.8 Початкове налаштування Git
- 1.9 Отримання допомоги
- 1.10 Підсумок
-
2. Основи Git
- 2.1 Створення Git-репозиторія
- 2.2 Запис змін до репозиторія
- 2.3 Перегляд історії комітів
- 2.4 Скасування речей
- 2.5 Взаємодія з віддаленими сховищами
- 2.6 Теґування
- 2.7 Псевдоніми Git
- 2.8 Підсумок
-
3. Галуження в git
- 3.1 Гілки у кількох словах
- 3.2 Основи галуження та зливання
- 3.3 Управління гілками
- 3.4 Процеси роботи з гілками
- 3.5 Віддалені гілки
- 3.6 Перебазовування
- 3.7 Підсумок
-
4. Git на сервері
- 4.1 Протоколи
- 4.2 Отримання Git на сервері
- 4.3 Генерація вашого публічного ключа SSH
- 4.4 Налаштування Серверу
- 4.5 Демон Git
- 4.6 Розумний HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Варіанти стороннього хостингу
- 4.10 Підсумок
-
5. Розподілений Git
-
6. GitHub
-
7. Інструменти Git
- 7.1 Вибір ревізій
- 7.2 Інтерактивне індексування
- 7.3 Ховання та чищення
- 7.4 Підписання праці
- 7.5 Пошук
- 7.6 Переписування історії
- 7.7 Усвідомлення скидання (reset)
- 7.8 Складне злиття
- 7.9 Rerere
- 7.10 Зневадження з Git
- 7.11 Підмодулі
- 7.12 Пакування
- 7.13 Заміна
- 7.14 Збереження посвідчення (credential)
- 7.15 Підсумок
-
8. Налаштування Git
-
9. Git and Other Systems
- 9.1 Git як клієнт
- 9.2 Міграція на Git
- 9.3 Підсумок
-
10. Git зсередини
- 10.1 Кухонні та парадні команди
- 10.2 Об’єкти Git
- 10.3 Посилання Git
- 10.4 Файли пакунки
- 10.5 Специфікація посилань (refspec)
- 10.6 Протоколи передачі
- 10.7 Супроводження та відновлення даних
- 10.8 Змінні середовища
- 10.9 Підсумок
-
A1. Додаток A: Git в інших середовищах
- A1.1 Графічні інтерфейси
- A1.2 Git у Visual Studio
- A1.3 Git в Eclipse
- A1.4 Git у Bash
- A1.5 Git у Zsh
- A1.6 Git у Powershell
- A1.7 Підсумок
-
A2. Додаток B: Вбудовування Git у ваші застосунки
- A2.1 Git з командного рядка
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
-
A3. Додаток C: Команди Git
- A3.1 Налаштування та конфігурація
- A3.2 Отримання та створення проектів
- A3.3 Базове збереження відбитків
- A3.4 Галуження та зливання
- A3.5 Поширення й оновлення проектів
- A3.6 Огляд та порівняння
- A3.7 Зневаджування
- A3.8 Латання (patching)
- A3.9 Електронна пошта
- A3.10 Зовнішні системи
- A3.11 Адміністрування
- A3.12 Кухонні команди
A3.5 Додаток C: Команди Git - Поширення й оновлення проектів
Поширення й оновлення проектів
Існує небагато команд Git, які використовують мережу, майже всі команди працюють над локальною базою даних. Коли ви готові поділитись своєю роботою чи взяти зміни деінде, існує лише жменя команд, які працюють з віддаленими сховищами.
git fetch
Команда git fetch
спілкується з віддаленим репозиторієм та отримує з нього всю доступну інформацію, якої немає в поточному сховищі, та зберігає її в локальній базі даних.
Ми спочатку бачимо цю команду в Отримання (fetching
) та затягування (pulling
) з ваших віддалених сховищ та продовжуємо бачити приклади її використання в Віддалені гілки.
Також ми використовуємо її в декількох прикладах у Внесення змін до проекту.
Ми використовуємо її щоб отримати одне окреме посилання поза типовим джерелом у Посилання (Refs) Запитів на Пул та бачимо як отримувати зміни з пакунка в Пакування.
Ми налаштовуємо дуже нетипові специфікації посилань, щоб змусити git fetch
робити щось трохи інше, ніж типова поведінка, у Специфікація посилань (refspec).
git pull
Команда git pull
є загалом комбінацією git fetch
та git merge
, тобто Git отримає зміни зі заданого віддаленого сховища, а потім одразу спробує злити їх до поточної гілки.
Ми швидко представляємо її в Отримання (fetching
) та затягування (pulling
) з ваших віддалених сховищ та показуємо, як побачити що буде злито при виконанні в Оглядання віддаленого сховища.
Ми також бачимо як використати її, щоб допомогти зі складнощами перебазування в Перебазовуйся коли перебазовуєшся.
Ми показуємо як використати її з URL, щоб отримати зміни одноразово в Отримання віддалених гілок.
Нарешті, ми дуже швидко згадуємо що ви можете використати опцію --verify-signatures
, щоб вона пересвідчувалась, що отримані коміти були підписані GPG у Підписання комітів.
git push
Команда git push
використовується для того, щоб звʼязатись з іншим сховищем, обчислити що є у вашій локальній базі даних, а у віддаленій немає, а потім надіслати різницю до іншого сховища.
Вона вимагає доступу на запис до іншого сховища, отже, зазвичай необхідна автентифікація.
Ми спочатку бачимо команду git push
у Надсилання змін до ваших віддалених сховищ.
Тут ми розглядаємо засади надсилання гілки до віддаленого репозиторія.
В Надсилання ми трошки глибше розглядаємо надсилання окремих гілок, а в Відслідковувані гілки ми бачимо, як налаштувати відслідковувані гілки для автоматичного надсилання до них змін.
У Видаляння віддалених гілок ми використовуємо опцію --delete
, щоб вилучити гілку на сервері за допомогою git push
.
Упродовж Внесення змін до проекту ми бачимо декілька прикладів використання git push
для розподілення роботи над гілками з декількома віддаленими сховищами.
Ми бачимо, як використати її для надсилання теґів, які ми створили, за допомогою опції --tags
у Розповсюдження теґів.
У Публікація змін з підмодуля ми використовуємо опцію --recurse-submodules
, щоб переконатись, що вся праця в наших підмодулях була опублікована перед надсиланням надпроекту, що може бути дуже корисним, коли ви використовуєте підмодулі.
У Інші клієнтські гаки ми коротко згадуємо про гак pre-push
, який є скриптом, який виконується перед тим, як завершується push, щоб перевірити, чи варто дозволяти це надсилання.
Нарешті, у Специфікації надсилання посилань ми дивимось на надсилання з повною специфікацією посилань замість загальних скорочень, які, зазвичай, використовуються. Це може допомогти вам дуже чітко надіслати саме ту роботу, яку ви бажаєте.
git remote
Команда git remote
є командою для керування записів про ваші віддалені сховища.
Вона дозволяє вам зберігати довгі URL як короткі назви, на кшталт “origin”, щоб ви не мусили постійно набирати їх повністю.
Ви можете мати декілька таких, та команда git remote
використовується для їх додавання, зміни та вилучення.
Ця команда докладно розглянута в Взаємодія з віддаленими сховищами, включно з наданням списку, доданням, вилученням та перейменуванням їх.
Вона використовується майже в кожному подальшому розділі книги, проте завжди у звичайному форматі git remote add <назва> <url>
.
git archive
Команда git archive
використовується для створення файлу архіву з окремим відбитком проекту.
Ми використовуємо git archive
, щоб створити архів tar проекту для того, щоб ним поділитися, у Підготовка видань.
git submodule
Команда git submodule
використовується для керування зовнішніми репозиторіями всередині звичайних репозиторіїв.
Це може бути використано для бібліотек чи інших типів спільних ресурсів.
Команда submodule
має декілька підкоманд (add
, update
, sync
тощо) для керування цими ресурсами.
Ця команда згадується лише, а також повністю розглянута, у Підмодулі.