2014-10-16 4 views
0

Несмотря на то, что я развиваюсь с Visual Studio в течение многих лет, мне до этого момента никогда не приходилось сталкиваться с управлением версиями, поэтому, пожалуйста, извините мое невежество, если окажется, что я глуп.Git with Visual Studio 2013

Я посвятил проект веб-сайта главной ветке моего репозитория. Я создал ветку под мастером под названием «stage2». Предполагается, что мастер будет использоваться для поддержания существующего сайта в реальном времени, а «stage2» будет использоваться для разработки для следующего выпуска, но не хочет быть включенным в опубликованные сборки до завершения разработки. Однако я не могу вернуться к мастеру из «stage2», пока не были зафиксированы изменения. Я думаю, что я мог бы неправильно понять, как должны использоваться ветви git. Может ли кто-нибудь прояснить это для меня?

Благодаря

ответ

3

Это звучит, как вы получили основную идею ветвей правой, но вы не знакомы с фиксаций. Я предлагаю вам прочитать что-то вроде this introduction to git, чтобы попытаться понять, как это работает.

Чтобы ответить на вашу конкретную проблему, вам понадобится чистое рабочее дерево, прежде чем вы сможете проверить другую ветку. Это в основном означает, что вам нужно сказать git, что делать с вашей работой, прежде чем делать что-либо еще. Предполагая, что вы не хотите отбрасывать свои изменения, вы можете создать commit (или несколько коммитов) для ваших изменений или stash их на потом. Если сделанные вами изменения завершены «кусками» работы, а не только временными битами текущей работы, я предлагаю вам совершить коммиты для каждого выполненного вами куска работы.

3

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

Оказывается, у вас есть несколько вариантов здесь:

  1. отменить изменения в текущей ветке с git reset --hard
  2. Хранить отдельно от текущего состояния, временно, с git stash. Когда вы вернетесь к функциям отделения вы можете использовать git stash pop восстановить работу
  3. Сделать фиксации вашей текущей работы по данной отрасли, а затем переключить ветви

У вас есть понятие правильного; ветвь Feature используется для «выполнения некоторой работы» с [обычно] несколькими коммитами на этом пути. Commits дешевы и легки, и вы всегда можете использовать Rebase, чтобы раздавить шумную историю, если хотите. Филиалы легкие и дешевые, поэтому вам предлагается использовать их.