Ускоренное слияние в git - PullRequest
3 голосов
/ 21 января 2011

Я предскажу это, сказав, что я новичок в 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, я получу список изменений, внесенных в лодку. Имеет ли это какой-либо смысл для кого-либо?

1 Ответ

0 голосов
/ 21 января 2011

, если вы не хотите вносить изменения при запуске, выполните git reset --hard.И если там есть неотслеживаемые файлы, которые вы также не хотите делать git clean -df.

Что касается вашего сообщения об ошибке в конце, у вас может быть проблема с регистром в пути.Это в Windows с msysgit?

Если вы работаете в Windows, убедитесь, что для autocrlf установлено значение false.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...