# coding: utf-8

1.3.2 Добавление и фиксация

Наконец, мы добавим файлы Вашего нового проекта Rails к Git и затем зафиксируем результаты. Можно добавить все файлы (кроме тех, которые соответствуют правилам игнорирования в .gitignore) следующим образом:20

  $ git add .

Здесь точка ‘.’ представляет текущий, и Git достаточно умен, чтобы добавить файлы рекурсивно, таким образом, это автоматически включает все подкаталоги. Эта команда добавляет файлы проекта в зону ожидания, которая содержит незавершенные изменения Вашего проекта; можно видеть, какие файлы находятся в зоне ожидания, используя комманду status:21

  $ git status
  # On branch master
  #
  # Initial commit
  #
  # Changes to be committed:
  #   (use "git rm --cached <file>..." to unstage)
  #
  #       new file:   README
  #       new file:   Rakefile
  .
  .
  .

(Результат длинный, и я применил вертикальные точки, чтобы указать пропущенный вывод.)

Чтобы сказать Git, что Вы хотите сохранить изменения, используйте команду commit:

    $ git commit -m "Initial commit"
  [master (root-commit) df0a62f] Initial commit
  42 files changed, 8461 insertions(+), 0 deletions(-)
  create mode 100644 README
  create mode 100644 Rakefile
  .
  .
  .

Метка -m позволяет Вам добавлять сообщение для фиксации; если Вы пропустите -m, то Git откроет редактор, который Вы установили в Разделе 1.3.1 и предложит ввести сообщение в нем.

Важно отметить, что фиксации Git локальны, и записываются только на машине, на которой происходят фиксации. Что отличает его от популярной open-source системы управления версиями под названием Subversion, в которой фиксация обязательно производит изменения на удаленном репозитарии. Git делит фиксацию в стиле Subversion на два логических куска: локальная запись изменений (git commit) и отправка изменений в удаленный репозитарий (git push). Мы увидим пример отправки в Разделе 1.3.5.

Между прочим, Вы можете увидеть список своих сообщений о фиксации, используя команду log:

  $ git log
  commit df0a62f3f091e53ffa799309b3e32c27b0b38eb4
  Author: Michael Hartl <[email protected]>
  Date:   Thu Oct 15 11:36:21 2009 -0700
  
    Initial commit

Чтобы выйти из log git, нажмите q.

# coding: utf-8