Работа с филиалом GIT

Я очень хорошо понимаю рабочий процесс GIT. У меня есть master филиал, а затем я оформить заказ develop ветка. После этого я оформляю feature ветка. На feature ветка я редактировал файл. Когда я вернусь к develop ветка. Я видел, что файл был отредактирован. Я начинаю не понимать, потому что я думал, что когда вы делаете что-то с файлом в ветви, это не повлияет на тот же файл в другой ветви, пока вы не объедините обе ветви. Может кто-нибудь объяснить, почему это повлияло на тот же файл на develop ветвь, когда я редактировал этот файл на feature ветка? Спасибо!

4 ответа

Вы забыли зафиксировать изменение в ветке feature,

Когда вы редактируете файл в ветви, вы редактируете эту версию из этой ветви. Если вы хотите перейти на другую ветку, вы должны сначала зафиксировать свои изменения, или вы можете использовать git stash чтобы сохранить это состояние, и вы можете восстановить его с git stash pop если вы хотите снова поработать над этой веткой.

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

Когда вы извлекаете из основной ветви другую ветку и вносите изменения в эту ветку, вы всегда должны сохранять свои изменения в этой ветке, используя "git stash", или вы можете зафиксировать изменения и передать эту ветку на удаленный сервер.

Ваше понимание может использовать некоторые уточнения.

Checkout обновляет индекс и рабочее дерево, но если вы изменили индексированное и / или содержимое рабочего дерева для файла, а новая проверка не изменила, ваши изменения будут сохранены.

Если новая проверка также изменила содержимое этого файла, вы даже можете сделать так, чтобы git слил эти изменения с вашими во время проверки с --merge опция (git откажется от проверки, если вы и новая проверка изменили файл, и вы не просите его объединить изменения).

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

Чтобы быть уверенным, что вы не пропустили никаких других основных принципов (и то, о чем вы спрашивали здесь, очень важно), я бы сказал, что вернитесь ко всей документации с мыслью, что вы ничего не знаете о git. Посмотрите на это совершенно свежими глазами.

Другие вопросы по тегам