2017-01-13 7 views
-2

Мы не можем переключаться между ветвями в Git без внесения изменений или их скрепления. Какова большая картина этого и почему Линус применяет этот подход при разработке Git?Git ветвление и локальные изменения

Если коммутационные ветви приводят к появлению локальных изменений по ветвям, какова точка в ветвях, поскольку они ожидаются в изоляции?

+0

* Вы можете * переключатель филиалов без первого совершения: см. http://stackoverflow.com/q/22053757/1256452. Но: почему вы утверждаете, что ветви «должны работать изолированно» в первую очередь? См. Также http://stackoverflow.com/q/25068543/1256452 – torek

+0

Я согласен с @torek. Я хотел бы понять, что вы подразумеваете под «работой в изоляции». – siride

+0

Когда-либо использовались виртуальные envs Pythons? Филиалы можно считать одинаковыми до тех пор, пока вы не захотите их объединить. – nehemiah

ответ

-2

Мы не можем переключаться между ветвями в Git без внесения изменений или их скрепления.

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

Во всяком случае форс-коммутационного отрасли, вы можете:

1)

git checkout -f <new_branch> // will lose any uncommitted changes on <old_branch> 

или

2)

git reset --hard <commit-hash-id-of-new-branch> // will lose any uncommitted changes on <old_branch> 
+0

Вопрос заключается не в том, чтобы узнать, как переключиться, а в том, чтобы понять дизайн между такой реальностью :( – nehemiah

+1

Если вы переключаете ветви, вы не теряете незафиксированные изменения. Они остаются там, и Git пытается применить их к новой ветке, потенциально приводящий к конфликту – siride

+0

@siride даже без 'stash'? – artm