2015-02-03 2 views
-2

У меня есть 2 ветви, которые являются branch_1 и branch_2.If мое рабочее пространство в чистоте, я могу оформить от одного к другому с помощью git checkout branch_1/branch_2Как переключиться на другую ветку без фиксации и кошелька?

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

Есть ли способ, которым я могу переключиться на другую ветку без commit или stash? Я имею в виду, что я могу переключить ветвь, даже если рабочая область не чиста, поэтому, когда я снова включаюсь в эту ветку, рабочая область такая же, как и в последний раз, когда я ее покидаю.

+2

'stash' существует для резервного копирования изменений в рабочей области без коммитов. Это инструмент для этой конкретной проблемы. Я не вижу причины, чтобы не использовать его. –

+0

Значит, вы хотите сделать кошелек без необходимости делать кошельки? –

ответ

1

Нет, вы не можете. Git реализует контракт, что содержимое рабочего каталога обновляется до того, что вы указываете в целевом параметре команды git checkout (например, имя филиала, SHA или Commish).

Git не будет проверять другие ветви, если ваш рабочий каталог содержит изменения, несовместимые с целью, и он не перезапишет/не потеряет то, что у вас есть в вашем рабочем каталоге. Следовательно, сообщение о том, что вы должны либо git stash, либо git commit.

Вы можете git checkout -f <SHA>, но это удалит все изменения вашей рабочей копии.

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