Ответ 1
Похоже, все, что вам нужно, это следующее:
git stash
git checkout branch123
git stash apply
Затем вы должны вернуться на свою ветку, не касаясь ведущей ветки.
Я работаю над проектом, но, к сожалению, я забыл переключиться на свою ветку и как таковой работал над мастером
Как я могу скопировать работу (3 файла), которую я сделал здесь, из мастера, в мою ветку (называемую, например, branch123), не приступая к мастеру?
Похоже, все, что вам нужно, это следующее:
git stash
git checkout branch123
git stash apply
Затем вы должны вернуться на свою ветку, не касаясь ведущей ветки.
Это старый вопрос, но он находится на вершине Google для "работы на неправильной ветке". Я думаю, что лучший ответ - просто проверить, в какой ветке вы хотите работать. Не нужно ничего хранить:
git checkout branch123
Поведение checkout
по умолчанию - НЕ перезаписывать измененные файлы в вашем рабочем каталоге, поэтому вы ничего не потеряете. Основываясь на том, что я нашел здесь.
Edit:
Этот метод будет работать только в том случае, если файлы, которые вы изменили в рабочем каталоге, идентичны как в файлах master
, так и branch123
. На самом деле это было указано Джефоми в комментариях к принятому ответу, но я не понимал, что он говорил в первый раз, когда я его прочитал.
git stash
- это то, что вам нужно.
полное объяснение можно найти в Git-Tools-Stashing
Как можно создать новую ветку, но не удалось проверить существующую ветку при извлечении файлов, я нашел следующий трюк с использованием временной ветки:
Этот сценарий работает как минимум с плагином VS 2015 Git, но, скорее всего, будет работать с любым инструментом Git.
EDIT: я обнаружил, что перед выполнением слияния вам придется выполнить rebase (git rebase -onto) ветки temp. В противном случае изменения мастера будут включены в слияние. Дополнительный шаг 3.5 выше. Подробнее об этом можно узнать здесь: https://git-scm.com/book/en/v2/Git-Branching-Rebasing