Comecei a trabalhar no meu ramo principal pensando que minha tarefa seria fácil. Depois de um tempo, percebi que seria mais trabalhoso e quero fazer todo esse trabalho em um novo ramo.
Como posso criar uma nova ramificação e levar todas essas alterações comigo sem sujar o mestre ?
git
git-branch
willcodejavaforfood
fonte
fonte
branch current changes
vsexisting uncommited branch
. Qualquer pessoa que fale inglês verá imediatamente que é a mesma, mas os mecanismos de pesquisa provavelmente não. Mantenha essa pergunta.Respostas:
Se você ainda não fez nenhum commit, apenas (1: branch) e (3: checkout) seriam suficientes.
Ou, em um comando:
git checkout -b newBranch
Conforme mencionado na
git reset
página do manual :master
ramo " ". Você deseja continuar polindo-os em uma ramificação de tópico, "topic/wip
" portanto, crie ramificações fora da atualHEAD
.master
ramo para se livrar desses três commits.topic/wip
ramo " " e continue trabalhando.Nota: devido ao efeito "destrutivo" de um
git reset --hard
comando (redefine o índice e a árvore de trabalho. Quaisquer alterações nos arquivos rastreados na árvore de trabalho desde que<commit>
são descartadas), eu preferiria:Isso garantiria que eu não estivesse perdendo nenhum arquivo privado (não adicionado ao índice).
A
--soft
opção não toca no arquivo de índice nem na árvore de trabalho (mas redefine o cabeçalho para<commit>
, assim como todos os modos).Com o Git 2.23+ , o novo comando
git switch
criaria a ramificação em uma linha (com o mesmo tiporeset --hard
, portanto, tenha cuidado com seu efeito):fonte
git reset --hard
irá alterar suas alterações e, se elas não forem confirmadas, serão irrecuperáveis! Talvez você só precisagit checkout -b …
git checkout -b
primeira.topic_wip
funcionaria também;)Como afirmado nesta pergunta: Git: Crie uma ramificação a partir de alterações não marcadas / não confirmadas no master : stash não é necessário.
Apenas use:
git checkout -b topic/newbranch
Qualquer trabalho não confirmado será levado para a nova filial.
Se você tentar pressionar, receberá a seguinte mensagem
Faça o que foi sugerido para criar a filial remotamente:
git push --set-upstream origin feature/feature/NEWBRANCH
fonte
Siga esses passos:
Crie uma nova ramificação:
Fazer checkout da nova filial: (isso não redefinirá seu trabalho.)
Agora comprometa seu trabalho neste novo ramo:
O uso das etapas acima manterá sua ramificação original limpa e você não precisará fazer nenhum 'git reset --hard'.
fonte
-s
no passo 3.Como você ainda não fez nenhum commit, você pode salvar todas as suas alterações no stash, criar e alternar para um novo ramo, e depois colocar essas alterações novamente na sua árvore de trabalho:
fonte
git stash push
não é um comando. Você provavelmente gostaria de usargit stash
ougit stash save
. Se você deseja incluir arquivos não rastreados no stash, use a--include-untracked
opção Da mesma forma, se você deseja incluir arquivos não rastreados e ignorados no stash, use a--add
opção.Para adicionar novas alterações a uma nova ramificação e enviar para remoto:
Muitas vezes, esqueço de adicionar a parte de origem para empurrar e me confundir porque não vejo a nova ramificação / confirmação no bitbucket
fonte