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

264
Rififi

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

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

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

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

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

0
Вы зафиксировали свои изменения в _normal_ ветви перед проверкой _master_? Был ли `git checkout master` успешным или он сообщил об ошибке? ge0rdi 9 лет назад 0
Нет, я не зафиксировал свои изменения, прежде чем проверить мастер. И да, мастер проверки git checkout прошел успешно. И это странно, потому что обычно вы не можете оформить ветку, если не сделали коммит. Я не должен был «мерзавец». Rififi 9 лет назад 0

1 ответ на вопрос

0
ge0rdi

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

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

Я не знал этого, я думал, что изменения были в мастере тоже. Спасибо. Rififi 9 лет назад 0

Похожие вопросы