вторник, 12 ноября 2013 г.

Git push не меняет файлы на сервере?


На днях с коллегой начали разбираться с системой контроля версий git. Немного заглянув в документацию начали экспериментировать.
Настроили репозиторий на тестовом сервере. Склонировали себе репозиторий локально.
Вообще мы планировали иметь каждый локально по репозиторию, один репозиторий с веткой master на тестовом севере, и один репозиторий с веткой master на продакшн сервере. Мы просто хотели пушить из локального репозитория сразу в ветку master на тестовом сервере, чтобы потом сливать все в ветку master на продакшн сервере. (Что то много слов получается )).
Тут начались непонятки...
Забираем изменения с тестового севера:
git pull origin master
Меняем файлы локально и делаем commit
Пушим изменения на сервер:
git push origin master
Но такой номер не проходит и git начинает ругаться. Но git не виноват, просто он не рекомендует пушить сразу в ветку master. Чтобы удаленный репозиторий мог принять наш push сразу в ветку master надо в настройках гита на сервере изменить опцию... Ой, не получается вспомнить. Вообщем, эта опция будет указываться в консоле когда git будет ругаться )
Ок. Работает. Поехали дальше
Гит принимает наш push и даже если набрать на сервере git log он покажет свежие коммиты. Т.е изменения в репозитории происходят.
Но если мы посмотрим на файлы на сервере, то мы увидим что файлы не изменяются.
Погуглив стало понятно что гиту надо ещё сказать, чтобы он обновил рабочую директорию в соответствии с индексом.
Сделать это можно используя команду
git checkout -f
Слава Богу! Работает!

Комментариев нет:

Отправить комментарий