Я начал работать над своей основной веткой, думая, что моя задача будет легкой. Через некоторое время я понял, что потребуется больше работы, и я хочу сделать всю эту работу в новой отрасли. Как я могу создать новую ветку и выполнить все эти изменения со мной без грязного мастера?
Создайте ветвь Git с текущими изменениями
Ответ 1
Если вы еще не сделали какой-либо фиксации, достаточно всего (1: branch) и (3: checkout). 
Или в одной команде:  git checkout -b newBranch
Как указано в git reset странице man:
$ git branch topic/wip     # (1)
$ git reset --hard HEAD~3  # (2)
$ git checkout topic/wip   # (3)
-  Вы совершили некоторые коммиты, но понимаете, что преждевременно находиться в ветке "master". Вы хотите продолжить их полировку в ветке темы, поэтому создайте "topic/wip" ответвление текущегоHEAD.
-  Перемотайте ветвь master, чтобы избавиться от этих трех коммитов.
-  Перейдите в ветвь "topic/wip" и продолжайте работать.
Примечание: из-за "деструктивного" эффекта команды git reset --hard (он сбрасывает индекс и рабочее дерево. Любые изменения в отслеживаемых файлах в рабочем дереве с <commit> отбрасываются), я бы предпочел пойти с а:
$ git reset --soft HEAD~3  # (2)
 чтобы убедиться, что я не теряю личный файл (не добавляется в индекс). 
Параметр --soft не будет касаться индексного файла или рабочего дерева вообще (но сбрасывает голову на <commit>, как и все режимы).
Ответ 2
Как указано в этом вопросе: Git: создать ветку из немаркированных/неактивных изменений в главном файле: stash не требуется.
Просто используйте:
 git checkout -b topic/newbranch
Любая свободная работа будет перенесена в новую ветвь.
При совершении вы получите следующее сообщение
фатальный: текущая функция ветвления /NEWBRANCH не имеет восходящей ветки. к нажмите текущую ветвь и установите пульт как вверх по течению, используйте
git push --set-upstream origin feature/feature/NEWBRANCH
Просто сделайте так, как вам предлагалось удаленно создавать ветку:
 git push --set-upstream origin feature/feature/NEWBRANCH
Ответ 3
Выполните следующие действия:
-  Создайте новую ветку: git branch newfeature
-  Оформить новую ветку: (это не будет reset твоя работа.) git checkout newfeature
-  Теперь выполните свою работу над этой новой ветвью: git commit -s
Использование вышеперечисленных шагов позволит сохранить исходную ветвь чистой, и вам не нужно делать никаких "git reset --hard".
Ответ 4
Так как вы еще не совершили никаких коммитов, вы можете сохранить все свои изменения в stash, создать и переключиться на новую ветку, а затем вернуть эти изменения в свое дерево:
git stash  # save local modifications to new stash
git checkout -b topic/newbranch
git stash pop  # apply stash and remove it from the stash list
Ответ 5
Чтобы добавить новые изменения в новую ветку и нажать на удаленный:
git branch branch/name
git checkout branch/name
git push origin branch/name
Часто я забываю добавить исходную часть, чтобы нажать и запутаться, почему я не вижу новую ветвь/фиксацию в битбакет
