Вот моя стратегия для решения проблемы.
Постановка задачи
Нам нужно внести изменения более чем в 10 файлов. Мы пытались PULL (git pull origin master), но Гит кричал:
ошибка: Ваши локальные изменения в следующих файлах будут перезаписаны слиянием. Пожалуйста, передайте изменения или сохраните их перед тем, как объединить.
Мы пытались выполнить commitи тогда pull, но они тоже не сработали.
Решение
На самом деле мы были в грязной стадии, потому что файлы находились в «промежуточной области», также называемой «индексной областью», а некоторые находились в «головной области» или «локальной директории Git». И мы хотели вытащить изменения с сервера.
Проверьте эту ссылку для получения информации о различных этапах Git в понятной форме: этапы GIT
Мы выполнили следующие шаги
git stash (это сделало наш рабочий каталог чистым. Ваши изменения хранятся в стеке Git).
git pull origin master (Вытащить изменения с сервера)
git stash apply (Применены все изменения из стека)
git commit -m 'message' (Совершил изменения)
git push origin master (Перенес изменения на сервер)
git stash drop (Бросить стек)
Давайте разберемся, когда и зачем нужно прятаться
Если вы находитесь в грязном состоянии, это означает, что вы вносите изменения в свои файлы, а затем вы по какой-либо причине вынуждены тянуть или переключаться на другую ветку для какой-то очень срочной работы, поэтому на данный момент вы не можете тянуть или переключаться, пока вы не совершите изменения. Команда stashздесь как рука помощи.
Из книги ProGIT , 2-е издание:
Часто, когда вы работали над частью своего проекта, все в беспорядке, и вы хотите немного переключить ветки, чтобы работать над чем-то другим. Проблема в том, что вы не хотите делать коммит наполовину проделанной работы, чтобы потом вернуться к этому вопросу. Ответом на этот вопрос является команда git stash. Stashing берет грязное состояние вашего рабочего каталога, то есть ваших измененных отслеживаемых файлов и поэтапных изменений, и сохраняет его в стек незавершенных изменений, которые вы можете повторно применить в любое время.