Git ветка: ветки не разные

Уже несколько дней у меня проблемы с мерзавцем.

Предположим, у меня есть ветка "Мастер". Я создаю ветку "нормальный", "git checkout normal", а затем немного меняю свой код.

Если я "git checkout master", а затем делаю "git status", то изменения, которые я сделал в обычной ветке, видны, а я в совершенно другой ветви!

Это не то поведение, которое я всегда имел. Я должен сказать, что сейчас я совершенно бессилен. Я не знаю, что случилось.

Могли бы вы дать мне руку? У меня есть git 2.3.3, и я использую Manjaro Linux.

1 ответ

Решение

Вы не зафиксировали свои изменения в обычной ветке. Только файлы в рабочем каталоге были изменены.

Вы можете переключаться между ветками Git даже с изменениями в рабочем каталоге. Если нет конфликтов, Git покажет:

M       test.txt  
Switched to branch 'master'

Это не значит, что эти изменения теперь в основной ветке. Они просто в рабочем каталоге. Так что теперь вы можете передать их мастеру (git commit -a) или проверить нормальный и зафиксировать там.

Если существует конфликт между вашими локальными изменениями и изменениями в ветке, которую вы хотите проверить, Git выдаст ошибку:

error: Your local changes to the following files would be overwritten by checkout:  
         test.txt  
Please, commit your changes or stash them before you can switch branches.  
Aborting

В этом случае вам нужно либо зафиксировать эти изменения, stash или полностью откажитесь, чтобы проверить нужную ветку.

Другие вопросы по тегам