📖 С. Чакон, Git для проф. программиста


Предисловие от Скотта Чакона
16

Предисловие от Бена Страуба
18

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

Роль команды reset
259

Команда 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

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

Made with FlippingBook - Online magazine maker