LINUX.ORG.RU

Странности GIT при использовани push


0

0

Когда я делаю коммит на одной машине(linux) и делаю push или rebase на другую машину(оффтопик), то изменения заливаются правильно - на другой машине создается нужный коммит, но появляются "Изменения, зарегистрированные в индексе, но несохраненные". Т.е. git на второй машине предлагает тут же сделать коммит, который отменяет изменения предыдущего коммита, который был запушшен с первой машины. Если сделать git reset --hard HEAD - то все приходит в норму. Но это ненормально, потому что если на второй машине в это время тоже велось редактирование - то оно тоже будет срезано. Как же заставить git не отменять предыдущий коммит таким странным образом?

Ответ на: Re: Странности GIT при использовани push от dmitry_vk

Re: Странности GIT при использовани push

> Пушить в не-bare репозиторий - плохая идея.

Если всё же хочется так делать - пушить надо в отдельную иерархию ветвей (типа external/master, external/branch1 и т. д.), а на второй машине работать с ветвями master, branch1 и т. д., делая merge/rebase с external по необходимости. Или можно наоборот, для работы создать копию веток local/master, local/branch1,..., а пушить напрямую в master, branch1... Главная идея - чтобы ветвь, в которую производится push, не совпадала с текущей checked out ветвью с которой ведётся работа. При операции push гит не трогает индекс, поэтому после пуша индкс остаётся таким, как был (т. е. если модификаций не было - соответствующий старому head-у) (более свежии версии гита при пуше в чекаутную ветвь показывают ворнинг).

slav ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.