Git спрятать незафиксированные файлы - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть два сервера для разработки и производства.На сервере разработки у меня новая ветка слитая с origin.Теперь я хочу пойти в производство и вытащить изменения.Но на производственном сервере в филиале master я изменил два файла, которые нужны только для этого сервера.

Поэтому, когда я нажимаю:

git pull

Я получаю:

error: Your local changes to the following files would be overwritten by merge:
app/code/local/NextBits/DependentCustomOptionsImage/Block/Adminhtml/Template/Edit/Tab/Options/Option.php
app/design/adminhtml/default/default/layout/dependentcustomoptionsimage.xml
Please, commit your changes or stash them before you can merge

Это два файла, которые мне нужны.

Как вытащить источник и не перезаписывать эти файлы?

Или как мне сохранитьэти файлы, вытащить изменения и вернуть их обратно?

1 Ответ

0 голосов
/ 21 ноября 2018

Существует как минимум три различных решения для достижения этой цели:

  • Вы можете commit внести изменения в эти два файла на рабочем сервере перед запуском git pull:

    git add -v -u
    git commit -m "Save prod config"
    git pull
    

    Обычно это создает коммит слияния, объединяющий локальную ветвь (с коммитом "Save prod config") и изменения с вашего пульта.

    Если есть какой-либо конфликт, вам просто нужно разрешить его с помощью git status, git diff и git commit.

    Для последующих обновлений его должно быть достаточнодля запуска git pull.

  • Как и в предыдущем решении, вы можете commit внести изменения в два файла рабочей конфигурации, но затем запустить git pull -r:

    git add -v -u
    git commit -m "Save prod config"
    git pull -r
    

    Опция -r означает --rebase и означает, что локальные коммиты, специфичные для рабочего сервера, будут перебазированы поверх извлеченных коммитов.

    Последующиеобновления можно выполнить, запустив git pull -r.

    Основным преимуществом этого решения является просто возможность сохранять «линейную историю»: не создается созданный коммит слияния, а коммит "Save prod config" всегда будет воспроизводитьсяв конце истории.

  • или вы можете использовать команду git stash (которая может иметь некоторые недостатки в случае конфликта):

    git stash
    git pull
    git stash pop
    
...