Слияние локальных изменений для git-репо без фиксации в новых ветках - PullRequest
0 голосов
/ 11 декабря 2018

Когда я работаю над проектом, иногда моя машина требует определенных изменений в конфигурационном файле, или двух, или многих.В настоящее время эти изменения хранятся в локальной ветке: local-settings.

Затем, когда мне нужно исправить и проверить ошибку, я выполняю извлечение из удаленного доступа и получаю последнюю версию.Я создаю свой new-branch, а затем объединяю local-settings в new-branch и делаю git reset HEAD~1, чтобы "отменить" коммит слияния.Оттуда я только проверяю и фиксирую свои файлы с исправлениями ошибок.

Есть ли какой-либо ущерб при выполнении таких действий, и есть ли лучший способ сохранить локальные изменения, которые мне нужны в долгосрочной перспективе?Я видел, как другие вопросы упоминали git stash, но это стирает скрытые изменения, как только они появляются, правильно?Это не кажется хорошим решением для меня.

Спасибо!

1 Ответ

0 голосов
/ 12 декабря 2018

Я думаю, что вы можете сделать это противоположным образом: вместо того, чтобы всегда объединять ваш local-settings (который загрязняет вашу историю) с new-branch, просто перебазируйте свой local-settings и разработайте для него исправление (предполагая, что local-settings происходит отnew branch. В противном случае cherry-pick может помочь).Затем, по завершении stash вашей работы, переключитесь на new-branch и stash pop.После этого commit исправление ошибки в new branch.

Таким образом, вы всегда развиваетесь в своей ветке local-settings, но вносите изменения в new-branch.

РЕДАКТИРОВАТЬ

Если ваша ветвь local-settings содержит более одного коммита, вы можете использовать rebase --onto:

Допустим, выназвал ваши ветки так:

A -- B -- C -- D (new-branch)
 \-- E -- G -- H -- I -- J (current-parent)
      \-- K -- L (local-branch)

То, что вы хотите сделать, это переназначить my-branch на коммит D следующим образом:

git rebase current-parent local-branch --onto D
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...