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