Git для профессионального программиста

Руководство для программистов.

Чакон С. Штрауб Б. «Git для профессионального программиста» Питер, 2016 год, 496 стр. (42,4 мб. pdf)

Git для профессионального программиста, это руководство по использованию Git в современных условиях. Git — распределенная система управления версиями — позволяет хранить много версий одного документа, при необходимости делать откат к более ранним, определять и контролировать изменения, разграничивать права и многие другие возможности.

Git стала популярной системой контроля версий для коммерческих разработок и для проектов с открытым исходным кодом. Эффективный и профессионально реализованный контроль версий необходим в любом коллективном веб-проекте. На данный момент Git используют большинство разработчиков свободно распространяемого ПО.

Появление огромного числа графических интерфейсов для всех платформ и поддержка IDE дает возможность внедрить Git в системы Windows. Это издание обновлено для Git-версии 2.0, еще больше в книге о GitHub.

ISBN 978-5-496-01763-3

Оглавление книги

1. Начало работы 19
Управление версиями 19
Локальные системы контроля версий 20
Централизованные системы контроля версий 20
Распределенные системы контроля версий 21
Краткая история Git 23
Основы Git 23
Снимки состояний, а не изменений 24
Локальность операций 25
Целостность Git 26
Git, как правило, только добавляет данные 26
Три состояния 26
Командная строка 28
Установка Git 28
Установка в Linux 29
Установка в Mac 29
Установка в Windows 30
Первая настройка Git 31
Ваш идентификатор 31
Выбор редактора 32
Проверка настроек 32
Получение справочной информации 33
Заключение 33

2. Основы Git 34
Создание репозитория в Git 34
Инициализация репозитория в существующей папке 34
Клонирование существующего репозитория 35
Запись изменений в репозиторий 36
Проверка состояния файлов 37
Слежение за новыми файлами 37
Индексация измененных файлов 38
Краткий отчет о состоянии 39
Игнорирование файлов 40
Просмотр индексированных и неиндексированных изменений 41
Фиксация изменений 43
Пропуск области индексирования 45
Удаление файлов 45
Перемещение файлов 47
Просмотр истории версий 47
Ограничение вывода команды log 52
Отмена изменений 54
Отмена индексирования 55
Отмена внесенных в файл изменений 56
Удаленные репозитории 57
Отображение удаленных репозиториев 57
Добавление удаленных репозиториев 58
Извлечение данных из удаленных репозиториев 59
Отправка данных в удаленный репозиторий 59
Просмотр удаленных репозиториев 60
Удаление и переименование удаленных репозиториев 61
Теги 61
Вывод списка тегов 62
Создание тегов 62
Теги с комментариями 62
Легковесные теги 63
Расстановка тегов постфактум 63
Обмен тегами 64
Псевдонимы в Git 65
Заключение 66

3. Ветвления в Git 67
Суть ветвления 67
Создание новой ветки 70
Смена веток 71
Основы ветвления и слияния 74
Основы ветвления 74
Основы слияния 78
Конфликты при слиянии 80
Управление ветками 82
Приемы работы с ветками 83
Долгоживущие ветки 84
Тематические ветки 85
Удаленные ветки 87
Отправка данных 91
Слежение за ветками 92
Получение данных с последующим слиянием 94
Ликвидация веток с удаленного сервера 94
Перемещение данных 94
Основы перемещения данных 94
Более интересные варианты перемещений 97
Риски, связанные с перемещением 99
Перемещение после перемещения 102
Сравнение перемещения и слияния 103
Заключение 104

4. Git на сервере 105
Протоколы 106
Локальный протокол 106
Протоколы семейства HTTP 107
Протокол SSH 110
Протокол Git 111
Настройка Git на сервере 111
Размещение на сервере голого репозитория 112
Простые настройки 113
Создание открытого ключа SSH 114
Настройка сервера 115
Git-демон 117
Интеллектуальный протокол HTTP 119
Интерфейс GitWeb 120
Приложение GitLab 122
Установка 122
Администрирование 123
Пользователи 124
Группы 124
Проекты 125
Хуки 126
Базовое применение 126
Совместная работа 126
Сторонний хостинг 127
Заключение 128

5. Распределенная система Git 129
Распределенные рабочие процессы 129
Централизованная работа 130
Диспетчер интеграции 131
Диктатор и помощники 132
Заключение 133
Содействие проекту 133
Рекомендации по созданию коммитов 134
Работа в маленькой группе 136
Маленькая группа с руководителем 142
Открытый проект, ветвление 146
Открытый проект, электронная почта 150
Заключение 153
Сопровождение проекта 153
Работа с тематическими ветками 153
Исправления, присланные по почте 154
Просмотр вносимых изменений 158
Интеграция чужих наработок 159
Схема с большим количеством слияний 162
Схема с перемещением и отбором 163
Программный компонент rerere 165
Идентификация устойчивых версий 165
Генерация номера сборки166
Подготовка устойчивой версии 167
Команда shortlog 167
Заключение 168

6. GitHub 169
Настройка и конфигурирование учетной записи 170
Доступ по протоколу SSH 170
Аватар 172
Адреса электронной почты 173
Аутентификация по двум признакам173
Содействие проекту 174
Ветвления проектов 175
Схема работы с GitHub 175
Запрос на включение 176
Стадии обработки запроса на включение 180
Более сложные запросы на включение 183
Язык разметки Markdown 188
GitHub-версия языка Markdown 188
Сопровождение проекта 193
Создание нового репозитория 193
Добавление соавторов 194
Управление запросами на включение 195
Упоминания и уведомления 201
Специальные файлы 204
Администрирование проекта 206
Управление организацией 207
Основные сведения об организации 207
Группы 208
Журнал регистрации 210
GitHub-сценарии 210
Хуки 211
API для GitHub 214
От пользователя Octokit 220
Заключение 220

7. Git-инструментарий 221
Выбор версии 221
Одна версия 221
Сокращения журнала ссылок 224
Диапазоны коммитов 226
Интерактивное индексирование 229
Индексирование файлов и его отмена 229
Индексирование изменений231
Скрытие и очистка 232
Скрытие вашей работы 233
Более сложные варианты скрытия 235
Отмена скрытых изменений 236
Создание ветки из скрытого фрагмента 236
Очистка рабочей папки 237
Подпись 238
Знакомство с GPG 239
Подпись тегов 239
Проверка тегов 240
Подпись коммитов 240
Подпись должна быть у всех 242
Поиск 242
Команда git grep 242
Поиск в Git-журнале 244
Поиск по строкам кода 244
Перезапись истории 245
Редактирование последнего коммита 246
Редактирование нескольких сообщений фиксации 246
Изменение порядка следования коммитов 248
Объединение коммитов 249
Разбиение коммита 250
Последнее средство: команда filter-branch 251
Команда reset 252
Три дерева 253
Рабочий процесс 254
Роль команды reset259
Команда reset с указанием пути 263
Объединение коммитов 265
Сравнение с командой checkout 267
Заключение 269
Более сложные варианты слияния 269
Конфликты слияния 270
Прерывание слияния 272
Игнорирование пробелов 272
Слияние файлов вручную 273
Применение команды checkout 276
Протоколирование слияния 277
Комбинированный формат 278
Отмена результатов слияния 280
Другие типы слияния 284
Команда rerere 287
Отладка с помощью Git 292
Примечания к файлам 293
Двоичный поиск 294
Подмодули 296
Начало работы 296
Клонирование проекта с подмодулями 298
Работа над проектом с подмодулями 300
Публикация результатов редактирования подмодуля 305
Слияние результатов редактирования подмодуля 306
Полезные советы309
Пакеты 313
Замена 316
Хранение учетных данных 322
Взгляд изнутри 323
Нестандартный вариант хранения учетных данных 325
Заключение 327

8. Настройка системы Git 328
Конфигурирование системы Git 328
Основные настройки на стороне клиента 329
Цвета в Git 331
Внешние инструменты для слияния и индикации изменений 332
Форматирование и пробелы 336
Настройка сервера 338
Git-атрибуты 339
Бинарные файлы 339
Развертывание ключа 342
Экспорт репозитория 345
Стратегии слияния 346
Git-хуки 347
Установка хука 347
Хуки на стороне клиента 347
Хуки для работы с коммитами 347
Хуки для работы с электронной почтой 348
Другие клиентские хуки 349
Хуки на стороне сервера 350
Пример принудительного внедрения политики 351
Хук на стороне сервера 351
Формат сообщения фиксации 352
Система контроля доступа пользователей 353
Тестирование 356
Хуки на стороне клиента 357
Заключение 360

9. Git и другие системы контроля версий 361
Git в качестве клиента 361
Git и Subversion 362
Git и Mercurial 372
Краткое содержание 13
Git и Perforce 380
Git и TFS 394
Переход на Git 404
Subversion 404
Mercurial 406
Perforce 408
TFS 410
Другие варианты импорта 411
Заключение 417

10. Git изнутри 418
Канализация и фарфор 419
Объекты в Git 420
Объекты-деревья 421
Объекты-коммиты 424
Хранение объектов 427
Ссылки в Git 428
Указатель HEAD 429
Теги 430
Удаленные ветки 431
Pack-файлы 432
Спецификация ссылок 435
Спецификация ссылок для отправки данных на сервер 437
Ликвидация ссылок 437
Протоколы передачи данных 438
Простой протокол 438
Интеллектуальный протокол 440
Обслуживание репозитория и восстановление данных 444
Обслуживание репозитория 444
Восстановление данных 445
Удаление объектов 447
Переменные среды 451
Глобальное поведение 451
Расположение репозитория 451
Пути доступа 452
Фиксация изменений 453
Работа в сети 453
Определение изменений и слияние 454
Отладка454
Разное 456
Заключение 457

Приложение A. Git в других средах 458
Графические интерфейсы 458
Утилиты gitk и git-gui 459
GitHub-клиенты для Mac и Windows 461
Подводя итоги 464
Другие GUI 464
Git в Visual Studio 465
Git в Eclipse 466
Git в Bash 466
Git в Zsh 468
Git в Powershell 469
Заключение 470

Приложение Б. Встраивание Git в приложения 471
Командная строка 471
Libgit2 472
Нетривиальная функциональность 474
Другие привязки 476
Приложение В. Git-команды 478
Настройка и конфигурирование 478
Копирование и создание проектов479
Фиксация состояния 480
Ветвления и слияния 483
Совместная работа и обновление проектов 486
Проверка и сравнение 489
Отладка 490
Исправления 490
Электронная почта 491
Внешние системы 492
Администрирование493
Служебные команды 494
Об авторах 495

Скачать книгу бесплатно42,4 мб. pdf
Git программирование. Видео

Похожая литература