2012-03-13 6 views
19

У меня есть сервер, где есть какая-то конфигурация, которую я точно не знаю, где я просто дергаюсь, и получает то, что находится в репозитории github, а затем перезагружает его для развертывания.Git pull не тянет все

Дело в том, что есть коммит, который не является моим последним, что на самом деле не на моем сервере. Файлы не находятся в .gitignore. Как я могу заверить, что тянет, вытащил фиксацию?

Я действительно не знаю, как это исправить, я думаю о перезапуске все :(

14:41][[email protected]] someserver_dir (master)$ git status 
# On branch master 
# Changes not staged for commit: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
# modified: Gemfile 
# modified: Gemfile.lock 
# modified: config/assets.yml 
# modified: config/database.yml 
# 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
# randomfiles 
+0

Более подробная информация будет легче ответить. ваш вопрос. Что делает «git status» sho ты что? Вы находитесь на правильной ветви локально? Например, если вы смотрите на ветку 'master' на сервере, вы проверили локально« master »? Как насчет 'git log origin/master..master'? –

+0

Является ли репозиторий git общедоступным? Если да, укажите URL-адрес. –

+0

не публично, статус git показывает мне, что все круто, есть только ветка. – thiagofm

ответ

51

Если вы всегда хотите, чтобы ваша версия сервера, чтобы отразить коммит с вашего репо, это, вероятно, лучше использовать git reset вместо git pull - таким образом, вы никогда не вызывать функциональные возможности слияния, но вместо того, чтобы установить все файлы в точности то, что они находятся в фиксации сброса в Например:

git fetch origin master 
git reset --hard FETCH_HEAD 
+4

Я всегда забываю эту команду, поэтому я продолжаю возвращаться к этой теме. Просто хотел добавить, что изменение «мастера» на любое другое имя филиала также работает, если вы хотите извлечь все из определенной ветки. – mdegges

+0

, вы можете также сбросить настройки на конкретную ветку, так что сработает перезапуск git -hard origin/master, так что вы укажете любую ветвь. (довольно забавно видеть, что я задаю этот вопрос 5 лет назад, я помню, что я управлял удаленным сервером, который использовал git для развертывания и оказался в плохом состоянии .. ха-ха) – thiagofm

Смежные вопросы