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

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

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

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

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

1 ответ1

0

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

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

M       test.txt  
Switched to branch 'master'

Это не значит, что эти изменения теперь в основной ветке. Они просто в рабочем каталоге. Таким образом, теперь вы можете зафиксировать их как 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 или полностью отменить, чтобы проверить нужную ветку.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .