Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > После push в git рабочая директория не изменяется


Автор: egetmanenko 29.8.2012, 23:57
У меня такая же проблема, что и тут - http://www.cyberforum.ru/development/thread342054.html#post1919372

Сливаю в локальный репозиторий данные, изменяю, отправляю на удалённый (git push) и вижу, что репозиторий изменился, мой коммит видно через git log, но рабочая директория осталась прежней - git status говорит, что есть файлы для коммита. git reset --hard HEAD спасает, но это как-то нелогично после каждого коммита выполнять эту команду. Тем более, что после пуша указатель указывает ровно на последний коммит (т.е. рабочая директория должна быть в соответствии с ним, но она в другом состоянии).

ЧЯДНТ?

Автор: skyboy 31.8.2012, 03:38
на одном компьютере - git push
на другом -  git pull --rebase
и на этом втором не подтянулись изменения.
я правильно понял?

Автор: egetmanenko 31.8.2012, 22:17
Цитата(skyboy @  31.8.2012,  03:38 Найти цитируемый пост)
на одном компьютере - git push
на другом -  git pull --rebase
и на этом втором не подтянулись изменения.
я правильно понял? 


Всё оказывается намного проще. Элементарный pull -> commit -> push на локальном репозитории вызывает описываемую ситуацию. Еще раз напишу:

- данные пушаются, т.е. история комитов обновляется
- меняется указатель HEAD на последний коммит в указанной ветке
- НО, не менются файлы в рабочей директории

Помогает git reset --hard HEAD или git checkout -f master. Но хотелось бы понять как решить этот вопрос без танцев с бубном.

Автор: skyboy 3.9.2012, 00:08
Цитата(egetmanenko @  31.8.2012,  21:17 Найти цитируемый пост)
- данные пушаются, т.е. история комитов обновляется
…
- НО, не менются файлы в рабочей директории

а что тогда коммитается, если файлы не меняются?

Автор: egetmanenko 20.9.2012, 18:33
Цитата(skyboy @  3.9.2012,  00:08 Найти цитируемый пост)
Цитата(egetmanenko @  31.8.2012,  21:17 )
- данные пушаются, т.е. история комитов обновляется
…
- НО, не менются файлы в рабочей директории

а что тогда коммитается, если файлы не меняются?


Изменения коммитятся локально.
Затем пушаются.
Затем смотрится история коммитов на удаленной машине и рабочая директория.

Автор: skyboy 20.9.2012, 20:56
Цитата(egetmanenko @  20.9.2012,  17:33 Найти цитируемый пост)
Затем пушаются.
Затем смотрится история коммитов на удаленной машине и рабочая директория. 

а между этими шагами происходит pull на удаленной машине, так?

Автор: egetmanenko 24.9.2012, 16:58
Цитата(skyboy @  20.9.2012,  20:56 Найти цитируемый пост)
Цитата(egetmanenko @  20.9.2012,  17:33 )
Затем пушаются.
Затем смотрится история коммитов на удаленной машине и рабочая директория. 

а между этими шагами происходит pull на удаленной машине, так? 

Ни пулл, ни checkout не делаются.

Автор: skyboy 24.9.2012, 23:45
хм. а надо.
без этого и не будут файлы сами по себе обновляться.
посуди сам: да, "рабочий каталог" и репозиторий, куда пушаешь — на одной машине. физически. но "рабочий каталог" может быть специально установлен на какой-то старый коммит — что, автоматически обновлять? а с изменениями что? автоматически мерджить?
потому ты на удаленной тоже явно запускаешь pull/rebase, как на любой другой.

Автор: skyboy 25.9.2012, 11:30
может, это то, что тебе надо: http://habrahabr.ru/post/151997/

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)