Eu tenho trabalhado em um projeto, mas infelizmente esqueci de mudar para minha filial e, como tal, tenho trabalhado em master
Como posso copiar o trabalho (3 arquivos) que fiz aqui do master para o meu branch (chamado, por exemplo, branch123 ) sem comprometer o master?
stash
salva as modificações locais e asstash apply
traz de volta.git reset --hard HEAD
e você voltou ao último commit que fez no seu ramo principal.A resposta aceita é a mais completa, mas há um caso especial em que você pode simplificar. Se os arquivos que você modificou no diretório de trabalho são idênticos nos dois
master
ebranch123
você pode simplesmente fazerNão há necessidade de esconder nada, pois o comportamento padrão de
checkout
NÃO substituir arquivos modificados no diretório de trabalho, para que você não perca nada. (Isso foi mencionado nos comentários primeiro por Cascabel)Como outras pessoas mencionaram nos comentários, se
branch123
ainda não existir, você pode fazerCom base no que encontrei aqui .
fonte
git checkout -b newbranch
master
ebranch123
. Veja minha resposta editada.git stash
é o que você precisa.uma explicação completa pode ser encontrada em Git-Tools-Stashing
fonte
Como é possível criar uma nova ramificação, mas não é possível fazer check-out de uma ramificação existente enquanto os arquivos foram retirados, encontrei o seguinte truque usando uma ramificação temporária para trabalhar:
Esse cenário funciona pelo menos com o plug-in VS 2015 Git, mas provavelmente funcionaria com qualquer ferramenta git.
EDIT: Descobri que você terá que executar uma rebase (git rebase --onto) da ramificação temporária antes de executar a mesclagem. Caso contrário, as alterações no mestre serão incluídas na mesclagem. Um passo extra 3.5 acima. Veja mais sobre rebase aqui: https://git-scm.com/book/en/v2/Git-Branching-Rebasing
fonte