2013-12-12 2 views
2

Представьте себе, что есть 2 ветки: мастер и особенность. Теперь я работаю над новой функцией и, следовательно, проведу эту ветку. Позже мне нужно работать с мастером, но он не может совершить . изменений, так как они еще не находятся в хорошем состоянии. Я могу выполнить их и переключиться на мастер. Я делаю там какую-то работу, и вдруг у меня возникает идея, что мне нужно протестировать в ветке , поэтому я хочу переключиться на нее, но снова мне нужно выполнить локальные изменения в мастер.Коммутационные ветви с местными изменениями

Теперь представьте, что у вас есть 10 вместо 1 ветви функции. Это единственный способ скрыть все локальные изменения при переключении ветвей или есть более интеллектуальное решение?

Пожалуйста, не ставят под сомнение работу потока, это просто expample, чтобы подчеркнуть раздражающий работу - копить - фотографии - работа - тайник - фотографии - применять тайник - - stashОформить заказ - применить другой зажим -... цикл.

ответ

2

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

+0

Вы абсолютно правы, я имел свою отдаленную ветвь в виду для работы с функциями, которая мне вообще не нужна, так как у меня есть функция dev только локально в этой конкретной ветви. –

2

Я не понимаю, почему вы не продвигаетесь вперед и не вносите изменения в ветку feature в качестве «промежуточной фиксации». Вы всегда можете вернуться назад и сделать git reset HEAD^, чтобы отменить фиксацию и продолжить работу. Я редко использую ставу сам.

2

Вместо того, чтобы просто совершал локально, вы можете создавать новые ветви перед совершал, например:

[work] 
$ git checkout -b sub_feature_branch 
$ git commit [...] 

# Now time to switch to other branch 

$ git checkout other_branch 
[work & repeat] 

Это не только вы держите каждую основную ветвь (мастер & функции в вашем случае) чистой в случае, если измените свое мнение позже, но вы также получите возможность отложить операции слияния, когда это применимо.

+0

Спасибо, это напоминает мне о более динамичной природе Git. Просто создайте локальную ветку функций и все. –

Смежные вопросы