Хм, нуте-с... прежде чем использовать Git, необходимо как минимум установить его в систему, логично? В Fedora я сделал это очень просто:
$ sudo dnf install git
Переходим в каталог проекта Ruby on Rails и, например, инициализируем для пробы пустой репозиторий:
$ git init
Инициализирован пустой репозиторий Git в /home/aleksej/rails/demo/.git/
Добавим свои имя и email, затем проверим конфигурацию:
$ git config --global --add user.name "rishard"
$ git config --global --add user.emailАдрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript.
$ git config --global --list
Замечательно, а теперь снова инициализируем репозиторий:
$ git init
Реинициализация существующего репозиторий Git в /home/aleksej/rails/demo/.git/
Добавляем и коммитим:
$ git add .
$ git commit -m "WOW"
Снова проверяем:
$ git status
На ветке master
нечего коммитить, нет изменений в рабочем каталоге
Ну что же, нет изменений значит нет. А если бы были? Давайте их создадим; изменим любой файл, созданный нами в ходе работы над погодным информером, написанным в Ruby on Rails на основе API WorldWeatherOnline; предположим, удалим API KEY из файла informer_controller.rb, или сделаем еще что-нибудь общественно-неполезное:
$ git status
На ветке master
Изменения, которые не в индексе для коммита:
(используйте «git add <файл>…», чтобы добавить файл в индекс)
(используйте «git checkout -- <файл>…», чтобы отменить изменения
в рабочем каталоге)
изменено: app/controllers/informer_controller.rb
нет изменений добавленных для коммита
(используйте «git add» и/или «git commit -a»)
и теперь снова комментим изменения. Поскольку новых файлов не добавлялось, мы вполне вправе объединить команды git add и git commit:
$ git commit -a -m 'Validation!'
[master 094fb45] Validation!
1 file changed, 1 insertion(+), 1 deletion(-)
Итак, имеем два коммита:
$ git log
commit 094fb45b5c07a19b9f51e5e6d2e0957a950db995
Author: rishard <Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript. >
Date: Thu Nov 3 11:57:36 2016 +0300
Validation!
commit fdb59a3d7e44da808814c2ab19be4053e19e5701
Author: rishard <Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript. >
Date: Thu Nov 3 11:51:54 2016 +0300
WOW
И для того, чтобы откатить внесенные изменения, достаточно теперь всего одной команды:
$ git reset --hard fdb59a3d7e44da808814c2ab19be4053e19e5701
HEAD сейчас на fdb59a3 WOW
или:
git checkout .
Открываем в браузере страничку localhost:3000/informer/spb и убеждаемся, что все отлично работает. К слову, а вот для того, чтобы в проекте Ruby on Rails откатить миграцию - Git нам с вами уже не понадобится:
rake db:rollback