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
или полностью откажитесь, чтобы проверить нужную ветку.