2016-06-06 3 views
0

Я хотел бы знать, если и как я могу создать новую ветку, когда я уже совершил, но не нажал.Git: создать новую ветвь после Commit перед нажатием

Сценарий:

  1. Переключить на Master
  2. Изменить что-то
  3. Фиксировать изменения
  4. Создать новую ветвь вместо Нажмите

В основном мне сказали, что это невозможно и перед тем как создать новую ветвь, нужно нажать. Поскольку я сделал два дня работы (например, 10+ коммиттов) и пришел к выводу, что я предпочел бы создать новую ветку вместо того, чтобы подталкивать эти изменения к мастеру (я хочу провести дополнительное тестирование до того, как изменения стали больше, чем ожидалось) ,

Должен ли я сохранить все файлы mal, перепроверить начальную версию, с которой я начал работать, создать из нее новую ветку и восстановить мои изменения и подтвердить или я могу просто создать новую ветку, которую я изначально думал (так что я не сделал уход сначала)?

ответ

1

В основном мне сказали, что это невозможно, и что нужно нажать перед созданием новой ветки.

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

git checkout -b newbranch 

И что бы создать новую ветку с именем newbranch, основываясь на текущей фиксации. Если вы хотите вернуться к master ветви в рамках этой операции (то есть, вы хотите, чтобы ваши изменения только на новой ветви, а не на главной ветви), вы можете сделать это:

# create a new branch, but don't switch to it 
git branch newbranch 

# Reset current (master) branch by discarding the most recent 
# commit. 
git reset --hard HEAD^ 

# Switch to new branch 
git checkout newbranch 

И теперь вы можете нажать вашей новой ветви на удаленный сервер.

0

Вы можете просто сделать git branch new_branchname. Начальная позиция по умолчанию: HEAD. Его можно изменить, если хотите, добавив его как второй параметр в git branch.

Теперь у вас есть то, что новый фиксатор все еще присутствует на master, который, как мне кажется, не является окончательным намерением. Вам нужно будет revert, что или даже reset (потому что он не был нажат, это нормально).

0

Создать ветку с последними фиксаций:

git branch newbranch 

Сбросить maste г ветвь состояния сервера:

git reset --hard origin/master 

Отъезд newbranch:

git checkout newbranch 

See more

0
$ git checkout dde0f681c20791aee8dcc0f31b41850f83c5b778 (id commit) 


$ git checkout -b before_bo 

$ git push --set-upstream origin before_bo 

$ git checkout master 
Смежные вопросы