Подтвердить что ты не робот

Возьмите все мои изменения в текущей ветке и переместите их в новую ветку в Git

Я начал работу над тем, что, как я думал, будет незначительным исправлением ошибок в моей главной ветке. Тем не менее, он вышел из-под контроля до такой степени, что, как мне бы хотелось, я создал отдельную ветвь, чтобы сделать разработку в первую очередь.

Итак, сейчас я хочу сделать следующее:

  • Создайте новую ветвь, называемую (скажем) "edge"
  • Переместите все измененные/не проверенные файлы на главном сервере (таким, что мастер не изменился с момента начала исправления ошибок)
  • Завершите работу над краем, слейте обратно в мастер

Как я могу это сделать?

4b9b3361

Ответ 1

Если вы еще ничего не совершали, вы уже находитесь в правильном положении.

  • Создайте новую ветку: git checkout -b edge
  • Ваши файлы не изменились. Просто git add, что нужно и как обычно.
  • Когда вы закончите выполнение edge, вернитесь к master с помощью git checkout и git merge edge.

Ответ 2

Чтобы добавить к ответу JB, если вы уже начали делать несколько коммитов на сервере для того, что в итоге было "краевым" усилием, вы могли:

git stash
git checkout -b edge master
git branch -f master SHA1_before_your_commits
git stash apply

Ответ 3

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

git stash
git checkout oldBranch
git merge master
git checkout master
git stash apply
git checkout oldBranch