Вместо этого перемещая всю текущую незавершенную работу в основной ветке в другую ветку - PullRequest
0 голосов
/ 25 мая 2018

Я новичок в Git и учусь использовать его для своего проекта.В настоящее время мне интересно, как переключить незафиксированную работу на ветку, когда я случайно работал в master.Я работаю самостоятельно, но все равно хочу все организовывать.

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

Я, конечно, могу зафиксировать изменения до master, а затем начать с новой ветки, но я бы предпочел все, что я делал со времени моего последнего коммита в этой новой ветке.,Каков простой подход к этому?

Это тот случай, когда понадобится git reset --soft?Или есть более простой подход?Спасибо.

1 Ответ

0 голосов
/ 25 мая 2018

Я вижу три случая:

  1. вы хотите продолжить на новой ветке, созданной из коммита las на master:

    git checkout -b name-of-new-branch
    

    Тогда выможете зафиксировать в новой ветви

  2. , которую вы хотите продолжить в существующей ветви (that-branch), и текущий WIP не затрагивает файл, который отличается в that-branch и в master (не волнуйтесь, Git будет жаловаться, если это так):

    git checkout that-branch
    

    Если проверка работает, вы можете зафиксировать

  3. некоторые файлы отличаются вthat-branch и в master (git жаловался, когда вы пытались 2.:

    git stash
    git checkout that-branch
    git stash apply
    

Могут быть конфликты, которые вы должны затем разрешить. Если вы не можете (объединяетможет быть трудно), не чувствуйте себя разбитым, и git reset HEAD --hard. Тайник все еще будет здесь, и вы можете вернуться к master и выполнить шаг 1, прежде чем пытаться объединиться обычным способом.

Вы могли бы также git stash pop, но я всегда подчеркиваю, что я потеряю работу, если она потерпит неудачу.

...