git: создайте новую локальную ветку без каких-либо локальных незафиксированных изменений - PullRequest
3 голосов
/ 21 сентября 2011

Я нахожусь в локальной ветке A и сделал некоторые изменения без фиксации (они не сделаны). Затем я хочу создать новую ветку B (для работы с чем-то другим) без внесения изменений в ветку A. Если я сделаю 'git checkout -b B', изменения в ветке A будут перенесены в новую ветку B. Как я могу избежать этого? Мне нужна новая ветка B без изменений в ветке A, и я не хочу фиксировать изменения в A на данный момент, потому что они еще не завершены.

Спасибо, ребята!

Ответы [ 3 ]

4 голосов
/ 21 сентября 2011

Используйте git stash, чтобы сохранить ваши изменения в A на данный момент.Позже вы можете получить их обратно с git stash pop.

Вы можете перечислить тайники, которые вы сделали с помощью git stash list.Также удобно просматривать, какие изменения находятся в тайнике с git stash show -p ...

3 голосов
/ 21 сентября 2011
$ git branch
* a
  b
$ git stash
$ git checkout b
$ vim file0 file1
$ git commit -a -m'k done'
$ git checkout a
$ git stash pop
3 голосов
/ 21 сентября 2011

Вы можете сохранить свои изменения перед проверкой новой ветки.

git stash
git checkout -b B

Если у вас есть новые неотслеживаемые файлы и вы хотите, чтобы они тоже исчезли, вы можете сначала добавить их (но не зафиксировать):

git add .
git stash
git checkout -b B

Позже вы сможете отследить их по

git reset HEAD file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...