@hedin83
хочу работать веб-разработчиком

Может ли git в ветке master знать о новых изменениях в другой ветке?

Объясните пожалуйста как так получается в git. Допустим у меня ветка master и от нее идет еще одна ветка dev. Перейдя в ветку dev, я делаю изменения в файле. Само собой в ветке master видно, что файл изменился и git status покажет, что есть изменения. В той же ветке master я делаю commit этого изменения, перехожу обратно в ветку dev, а там... уже коммитить ничего не надо... уже git status ничегошеньки не показывает. Почему коммитя в одной ветке очищается буферная зона в другой.? Какая-то у меня странная связь веток получается.
  • Вопрос задан
  • 221 просмотр
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
http://dilbert.com/strip/1998-08-24
Перейдя в ветку dev, я делаю изменения в файле. Само собой в ветке master видно, что файл изменился и git status покажет, что есть изменения.

Пока изменения не закоммичены они не принадлежат никакой ветке, они только в рабочей копии. А гит при переключении веток сохраняет изменения сделанные в рабочей копии. (Это не всегда возможно, например, если в рабочей копии и в ветке на которую происходит переключение изменено одно и то же место, git не даст переключиться на эту ветку, с сообщением, что переключение затрёт изменения в рабочей копии). Поэтому переключаясь между ветками можно наблюдать разницу между содержимым ветки и содержимым рабочей копии. Как только изменения закоммичены, они принадлежат ветке, в которую они закоммичены и при переключении ветки на другую в рабочую копию будет скопировано содержимое файла из новой ветки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы