
Уже несколько дней у меня проблема с git.
Предположим, у меня есть ветка "master". Я создаю ветку "normal", делаю "git checkout normal", а затем немного меняю свой код.
Если я выполню команду «git checkout master», а затем «git status», изменения, которые я сделал в ветке normal, будут видны, хотя я нахожусь в совершенно другой ветке!
Это не то поведение, которое у меня всегда было. Должен сказать, что сейчас я полностью бессилен. Я не знаю, что произошло.
Не могли бы вы мне помочь? У меня 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
либо полностью отменить их, чтобы проверить нужную ветку.