Я предскажу это, сказав, что я новичок в git. Тем не менее, это кажется довольно простым сценарием, и я не вижу, откуда возникла проблема. Вот сценарий:
Я в основной ветке с некоторыми незафиксированными изменениями, которые мне не нужны. Мне нужно сделать отдельное простое изменение, которое будет упаковано в патч. Итак, я делаю это:
Я нашел хэш # для последнего коммита в ветке master, ffdd99afc89211e9ddc3efa3415b0adaf0076b4b.
Итак, из корня моего хранилища я делаю:
git branch my_patch ffdd99afc89211e9ddc3efa3415b0adaf0076b4b
git checkout -f my_patch
Теперь я редактирую три файла и добавляю четвертый, после чего делаю:
git add [path to the added file]
git status
перечисляет три обновленных и один добавленный файл
git commit -a
git status
изменений не найдено
git format-patch master --stdout > my_patch.patch
Все хорошо до этого момента. Теперь я хочу слить эту ветку обратно в мастер.
git checkout master
git status
Изменений не найдено
git merge my_patch
Выход из которого:
Updating ffdd99a..e2754ca
error: Your local changes to 'Blah.cs' would be overwritten by merge.
Aborting. Please, commit your changes
or stash them before you can merge.
А теперь, если я сделаю git status
, я получу список изменений, внесенных в лодку. Имеет ли это какой-либо смысл для кого-либо?