Некоторые заметки о сложной и важной системе.

  1. Сначала полезные ссылки по теме:
  • Git Book - неплохо изложены основные положения.
  • Очень хорошие статьи с подробным объяснением ряда основных моментов: 1, 2 и 3
  • Видео с объяснением некоторых продвинутых вещей
  • Документация GitHub, осбенно советую прочитать этот раздел- там много информации о работе с удаленными репозиториями.
  • Полная документация
  1. Для чего же нужен Git?

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

    2. Механизм веток позволяет независимо работать над разными частями проекта.

    3. Ваш локальный репозиторий можно связать с удаленными, и синхронизировать изменения между ними(т.е отправлять и получать новые коммиты, ветки итд).

    4. 2-й и 3-й пункты делают возможной относительно удобную командную разработку.

  2. Важное свойство удаленных репозиториев:

    Ветки на удаленном репозитории при синхронизации с локальным с помощью команды git push могут перемещаться только вперед (fast-forward), истинный merge недопустим, и git потребует от вас сделать этот merge локально с помощью git pull. Также недопустим откат удаленной ветки назад, в том случае, если оный был совершен локально с помощью git reset.

  3. Механизм подмодулей:

    Помимо других применений, позволяет неплохо управлять зависимостями(устанавливать и обновлять библиотеки проекта) там, где такого механизма нет(C/С++).