Git для профессионального программиста — Эта книга представляет собой обновленное руководство по использованию Git в современных условиях. С тех пор как проект Git — распределенная система управления версиями — был создан Линусом Торвальдсом, прошло много лет, и система Git превратилась в доминирующую систему контроля версий, как для коммерческих целей, так и для проектов с открытым исходным кодом. Эффективный и хорошо реализованный контроль версий необходим для любого успешного веб-проекта. Постепенно эту систему приняли на вооружение практически все сообщества разработчиков ПО с открытым исходным кодом. Появление огромного числа графических интерфейсов для всех платформ и поддержка IDE позволили внедрить Git в операционные системы семейства Windows. Второе издание книги было обновлено для Git-версии 2.0 и уделяет большое внимание GitHub.
Название: Git для профессионального программиста Автор: Чакон С., Штрауб Б. Издательство: Питер Год: 2016 Страниц: 496 Формат: PDF Размер: 43,7 Мб ISBN: 978-5-496-01763-3 Качество: Отличное Серия или Выпуск: Библиотека программиста Язык: Русский
Содержание:
Предисловие от Скотта Чакона Предисловие от Бена Страуба 1. Начало работы Управление версиями Локальные системы контроля версий Централизованные системы контроля версий Распределенные системы контроля версий Краткая история Git Основы Git Снимки состояний, а не изменений Локальность операций Целостность Git Git, как правило, только добавляет данные Три состояния Командная строка Установка Git Установка в Linux Установка в Mac Установка в Windows Первая настройка Git Ваш идентификатор Выбор редактора Проверка настроек Получение справочной информации Заключение 2. Основы Git Создание репозитория в Git Инициализация репозитория в существующей папке Клонирование существующего репозитория Запись изменений в репозиторий Проверка состояния файлов Слежение за новыми файлами Индексация измененных файлов Краткий отчет о состоянии Игнорирование файлов Просмотр индексированных и неиндексированных изменений Фиксация изменений Пропуск области индексирования Удаление файлов Перемещение файлов Просмотр истории версий Ограничение вывода команды log Отмена изменений Отмена индексирования Отмена внесенных в файл изменений Удаленные репозитории Отображение удаленных репозиториев Добавление удаленных репозиториев Извлечение данных из удаленных репозиториев Отправка данных в удаленный репозиторий Просмотр удаленных репозиториев Удаление и переименование удаленных репозиториев Теги Вывод списка тегов Создание тегов Теги с комментариями Легковесные теги Расстановка тегов постфактум Обмен тегами Псевдонимы в Git Заключение 3. Ветвления в Git Суть ветвления Создание новой ветки Смена веток Основы ветвления и слияния Основы ветвления Основы слияния Конфликты при слиянии Управление ветками Приемы работы с ветками Долгоживущие ветки Тематические ветки Удаленные ветки Отправка данных Слежение за ветками Получение данных с последующим слиянием Ликвидация веток с удаленного сервера Перемещение данных Основы перемещения данных Более интересные варианты перемещений Риски, связанные с перемещением Перемещение после перемещения Сравнение перемещения и слияния Заключение 4. Git на сервере Протоколы Локальный протокол Протоколы семейства HTTP Протокол SSH Протокол Git Настройка Git на сервере Размещение на сервере голого репозитория Простые настройки Создание открытого ключа SSH Настройка сервера Git-демон Интеллектуальный протокол HTTP Интерфейс GitWeb Приложение GitLab Установка Администрирование Пользователи Группы Проекты Хуки Базовое применение Совместная работа Сторонний хостинг Заключение 5. Распределенная система Git Распределенные рабочие процессы Централизованная работа Диспетчер интеграции Диктатор и помощники Заключение Содействие проекту Рекомендации по созданию коммитов Работа в маленькой группе Маленькая группа с руководителем Открытый проект, ветвление Открытый проект, электронная почта Заключение Сопровождение проекта Работа с тематическими ветками Исправления, присланные по почте Просмотр вносимых изменений Интеграция чужих наработок Схема с большим количеством слияний Схема с перемещением и отбором Программный компонент rerere Идентификация устойчивых версий Генерация номера сборки Подготовка устойчивой версии Команда shortlog Заключение 6. GitHub Настройка и конфигурирование учетной записи Доступ по протоколу SSH Аватар Адреса электронной почты Аутентификация по двум признакам Содействие проекту Ветвления проектов Схема работы с GitHub Запрос на включение Стадии обработки запроса на включение Более сложные запросы на включение Язык разметки Markdown GitHub-версия языка Markdown Сопровождение проекта Создание нового репозитория Добавление соавторов Управление запросами на включение Упоминания и уведомления Специальные файлы Администрирование проекта Управление организацией Основные сведения об организации Группы Журнал регистрации GitHub-сценарии Хуки API для GitHub От пользователя Octokit Заключение 7. Git-инструментарий Выбор версии Одна версия Сокращения журнала ссылок Диапазоны коммитов Интерактивное индексирование Индексирование файлов и его отмена Индексирование изменений Скрытие и очистка Скрытие вашей работы Более сложные варианты скрытия Отмена скрытых изменений Создание ветки из скрытого фрагмента Очистка рабочей папки Подпись Знакомство с GPG Подпись тегов Проверка тегов Подпись коммитов Подпись должна быть у всех Поиск Команда git grep Поиск в Git-журнале Поиск по строкам кода Перезапись истории Редактирование последнего коммита Редактирование нескольких сообщений фиксации Изменение порядка следования коммитов Объединение коммитов Разбиение коммита Последнее средство: команда filter-branch Команда reset Три дерева Рабочий процесс Роль команды reset Команда reset с указанием пути Объединение коммитов Сравнение с командой checkout Заключение Более сложные варианты слияния Конфликты слияния Прерывание слияния Игнорирование пробелов Слияние файлов вручную Применение команды checkout Протоколирование слияния Комбинированный формат Отмена результатов слияния Другие типы слияния Команда rerere Отладка с помощью Git Примечания к файлам Двоичный поиск Подмодули Начало работы Клонирование проекта с подмодулями Работа над проектом с подмодулями Публикация результатов редактирования подмодуля Слияние результатов редактирования подмодуля Полезные советы Пакеты Замена Хранение учетных данных Взгляд изнутри Нестандартный вариант хранения учетных данных Заключение 8. Настройка системы Git Конфигурирование системы Git Основные настройки на стороне клиента Цвета в Git Внешние инструменты для слияния и индикации изменений Форматирование и пробелы Настройка сервера Git-атрибуты Бинарные файлы Развертывание ключа Экспорт репозитория Стратегии слияния Git-хуки Установка хука Хуки на стороне клиента Хуки для работы с коммитами Хуки для работы с электронной почтой Другие клиентские хуки Хуки на стороне сервера Пример принудительного внедрения политики Хук на стороне сервера Формат сообщения фиксации Система контроля доступа пользователей Тестирование Хуки на стороне клиента Заключение 9. Git и другие системы контроля версий Git в качестве клиента Git и Subversion Git и Mercurial Git и Perforce Git и TFS Переход на Git Subversion Mercurial Perforce TFS Другие варианты импорта Заключение 10. Git изнутри Канализация и фарфор Объекты в Git Объекты-деревья Объекты-коммиты Хранение объектов Ссылки в Git Указатель HEAD Теги Удаленные ветки Pack-файлы Спецификация ссылок Спецификация ссылок для отправки данных на сервер Ликвидация ссылок Протоколы передачи данных Простой протокол Интеллектуальный протокол Обслуживание репозитория и восстановление данных Обслуживание репозитория Восстановление данных Удаление объектов Переменные среды Глобальное поведение Расположение репозитория Пути доступа Фиксация изменений Работа в сети Определение изменений и слияние Отладка Разное Заключение Приложение A. Git в других средах Графические интерфейсы Утилиты gitk и git-gui GitHub-клиенты для Mac и Windows Подводя итоги Другие GUI Git в Visual Studio Git в Eclipse Git в Bash Git в Zsh Git в Powershell Заключение Приложение Б. Встраивание Git в приложения Командная строка Libgit Нетривиальная функциональность Другие привязки Приложение В. Git-команды Настройка и конфигурирование Копирование и создание проектов Фиксация состояния Ветвления и слияния Совместная работа и обновление проектов Проверка и сравнение Отладка Исправления Электронная почта Внешние системы Администрирование Служебные команды Об авторах