Переместить ветвь фиксирует в текущую как незафиксированные изменения в рабочем каталоге?
Допустим, я работаю над branchA
и необходимо временно зафиксировать все незафиксированные изменения. Итак, я создаю branchB
и передай все.
Через некоторое время мне нужно перенести все эти изменения обратно в branchA
как незафиксированные изменения.
(Некоторые изменения в файлах, которые ранее не отслеживались в репо)
Как мне это сделать? Слияние + сброс? Есть ли простая команда для этого?
Я мог бы также перефразировать этот вопрос как:
Как отменить git branch -b branchB; git add.; git commit; ?
3 ответа
Предполагая, что вы собираетесь бросить branchB
прочь, я бы предложил сделать git merge branchB --squash --no-commit
, --no-commit
опция гарантирует, что изменения будут применены к вашему рабочему каталогу, в отличие от зафиксированного. --squash
опция предотвращает коммит, который вы в итоге делаете, коммитом слияния. Причина, по которой я предлагаю использовать эту опцию, состоит в том, что не стоит делать что-либо, кроме самого слияния, в коммите слияния, и кажется, что вы хотите выполнить еще какую-то работу локально, прежде чем выполнять "реальный" коммит. Кроме того, это предотвращает вашу временную фиксацию на branchB
от появления в вашей истории.
Если вы не имеете дело с большим количеством файлов, просто посмотрите отдельные файлы из другой ветки:
git checkout branchB <filename1>
git checkout branchB <filename2>
Это приводит к тому, что файлы находятся во главе другой ветви.