- •Предисловие
- •Благодарности
- •Лицензия
- •Базовые операции
- •Сохранение состояния
- •Добавление, удаление, переименование
- •Расширенная отмена/Восстановление
- •Возвраты
- •Скачивание файлов
- •На острие ножа
- •Публичный доступ
- •Что я наделал?
- •Упражнение
- •Создание списка изменений
- •Все о клонировании
- •Синхронизация компьютеров
- •Классический контроль исходного кода
- •Создание форка проекта
- •Окончательные бэкапы
- •Многозадачность со скоростью света
- •Другие системы контроля версий
- •Чудеса ветвления
- •Кнопка босса
- •Грязная работа
- •Быстрые исправления
- •Бесперебойный рабочий процесс
- •Собрать все в кучу
- •Управление Ветками
- •Временные Ветки
- •Работайте как вам нравится
- •Уроки истории
- •Оставаясь корректным
- •Локальные изменения сохраняются
- •Переписывая историю
- •Создавая Историю
- •Когда же все пошло не так?
- •Из-за кого все пошло наперекосяк?
- •Личный опыт
- •Групповая работа в Git
- •Git через SSH, HTTP
- •Git через что угодно
- •Патчи: Общее применения
- •К сожалению, мы переехали
- •Удаленные Ветки
- •Несколько Удаленных Веток
- •Мои Настройки
- •Гроссмейстерство Git
- •Релизы исходников
- •Сохранение изменений
- •Слишком большой коммит
- •Этапные изменения
- •Не теряй HEAD
- •Охота за HEAD'ами
- •Git как основа
- •Опасные трюки
- •Улучшаем свой публичный образ
- •Раскрываем тайны
- •Невидимость
- •Целостность
- •Интеллект
- •Индексация
- •Голые репозитории
- •Происхождение Git
- •База данных объектов
- •Blobs
- •Деревья
- •Коммиты
- •Неотличимо от магии
- •Недостатки Git
- •Недостатки SHA1
- •Microsoft Windows
- •Несвязанные файлы
- •Кто и что редактировал ?
- •История файлов
- •Начальное Клонирование
- •Изменчивые Проекты
- •Глобальный счетчик
- •Пустые подкаталоги
- •Первоначальный коммит
- •Приложение А: Перевод этого руководства
Магия Git
26 / 41
Глава 7
Гроссмейстерство Git
Эта претенциозно названная глава является собранием приемов работы с Git, которые я не смог отнести к другим главам.
7.1 Релизы исходников
В моих проектах Git управляет только теми файлами, которые я собираюсь архивировать и пускать в релиз. Чтобы создать тарбол с исходниками, я выполняю:
$ git archive --format=tar --prefix=proj-1.2.3/ HEAD
7.2 Сохранение изменений
Вручную сообщать Git о том, что вы добавили, удалили или переименовали файлы, может стать непростой задачей в некоторых проектах. Вместо этого вы можете выполнить команды:
$ git add . $ git add -u
Git просмотрит файлы в текущем каталоге и обработает изменения сам. Вместо второй команды add, выполните git commit -a, если вы хотите также сделать коммит с изменениями. В git help ignore можно посмотреть, как указать, какие файлы должны игнорироваться.
Вы можете выполнить все это в один прием:
$ git ls-files -d -m -o -z | xargs -0 git update-index --add --remove
Опции -z и -0 предотвращают побочные эффекты от файловых имен, содержащих специальные символы. Поскольку эта команда добавляет игнорируемые файлы, вы можете использовать опции -x или -X.
