Git ветка не отделена от другой ветки - PullRequest
2 голосов
/ 12 мая 2011

Привет, я какое-то время бьюсь головой о стену, пытаюсь что-то понять с помощью мерзких веток.

У меня есть хранилище с двумя ветками. Ветви A и B, я сделал некоторые модификации в моей ветви A (которые еще не зафиксированы), и я хотел бы создать новую ветвь C на основе ветви A. Для этого я использую git checkout -b branchC, когда я переключаюсь на эту ветку C и пытаюсь отредактировать один из файлов, которые я изменил ранее, новые модификации также применяются к предыдущей ветке.

Я уверен, что это не нормально, ты не согласен? Что-то не так с системой ветвления?

Спасибо за помощь.

Ответы [ 3 ]

3 голосов
/ 12 мая 2011

Когда вы редактируете свои файлы, вы не изменяете ветку.Сначала вы должны зафиксировать свои изменения, чтобы они попали в текущую ветку.Поэтому, если вы просто переключаетесь между A и C, файлы в вашем рабочем дереве по-прежнему отображаются как измененные.

2 голосов
/ 12 мая 2011

Изменения, которые вы не относитесь к той ветке, над которой вы работаете. Всякий раз, когда вы переключаете ветви, измененные, но незафиксированные файлы остаются как измененные, но незафиксированные. Это ожидаемое поведение в git. И любая другая VCS в этом отношении - системы контроля версий не подтверждают изменения в вашем рабочем пространстве, пока вы не сообщите об этом. До тех пор они - ваши моды, а не VCS.

0 голосов
/ 12 мая 2011

Возможно, вы захотите посмотреть на команду "git stash" ("git stash --help" или "man git-stash"), если вы по какой-то причине еще не хотите фиксировать свои изменения. Это позволяет отложить ваши измененные файлы и перейти к различным ветвям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...