# coding: utf-8

1.3.3 Что хорошего Git делает для Вас?

В этой точке, вероятно не совсем понятно, почему помещение Вашего исходного кода в систему управление версиями полезно для вас, позвольте мне привести лишь один пример. (Мы увидим многие другие в последующих главах.) Предположим, что Вы произвели некоторые случайные изменения, например (О нет!) удалили критичный app/controllers/ каталог:

  $ ls app/controllers/
  application_controller.rb
  $ rm -rf app/controllers/
  $ ls app/controllers/
  ls: app/controllers/: No such file or directory

Здесь мы используем Unix команду ls , чтобы перечислить содержимое app/controllers/ каталога и команду rm , чтобы удалить его. Флаг -rf (сокращение от “recursive force”), рекурсивно удаляет все файлы, каталоги, подкаталоги, и так далее, не запрашивая явного подтверждения для каждого стирания.

Давайте проверим состояние(статус), чтобы увидеть что произошло:

  $ git status
  # On branch master
  # Changed but not updated:
  #   (use "git add/rm <file>..." to update what will be committed)
  #   (use "git checkout -- <file>..." to discard changes in working directory)
  #
  #       deleted:    app/controllers/application_controller.rb
  #
  no changes added to commit (use "git add" and/or "git commit -a")

Мы видим здесь, что пара файлов была удалена, но изменения находятся только на “рабочем дереве”; они еще не зафиксировались. Это означает, что мы все еще можем легко отменить изменения при наличии Git контроля предыдущей фиксации с командой checkout-f флагом, чтобы инициировать перезапись текущих изменений):

  $ git checkout -f
  $ git status
  # On branch master
  nothing to commit (working directory clean)
  $ ls app/controllers/
  application_controller.rb

Пропавшие каталог и файл вернулись. Какое облегчение!

# coding: utf-8