Estou tentando escolher um commit do master e colocá-lo no branch de produção atual. No entanto, quando eu executo git cherry-pick <SHA-hash>
, apenas recebo esta mensagem:
# On branch prod_20110801
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
# site/test-result/
nothing added to commit but untracked files present (use "git add" to track)
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:
git commit --allow-empty
Otherwise, please use 'git reset'
Nota: Eu tentei fazer um reset e um reset --hard HEAD ^, e nenhum dos dois pareceu mudar nada.
Estou confuso sobre por que isso não está funcionando para mim.
Qualquer insight, conselho ou ideia sobre como resolver isso seria útil ~!
git
branching-and-merging
cherry-pick
Jay Taylor
fonte
fonte
Respostas:
Git está resolvendo a escolha seletiva como um no-op - todas as mudanças introduzidas por aquele commit foram introduzidas por algum commit em seu branch atual. (Ou é o que o Git pensa, de qualquer maneira.) Verifique se o commit que você está escolhendo já não foi mesclado de alguma forma, como um merge adequado, rebase / escolha aleatória ou patch fragmentado. (Use
git show <commit-id>
para ver a diferença.)fonte
No meu caso, isso estava me deixando maluco, pois era bastante óbvio que o commit específico que eu queria escolher não havia sido incorporado ao meu branch atual.
Acontece que alguém já tinha escolhido o commit uma semana antes. As mudanças , mas não o SHA específico, já estavam no meu ramo atual e eu não as tinha notado.
Verifique os arquivos que você está tentando escolher. Se eles já tiverem as alterações, uma versão do commit já foi escolhida a dedo ou adicionada de outra maneira. Portanto, não há necessidade de selecioná-lo novamente.
fonte
git log --graph --pretty --decorate --oneline
para ver se um determinado SHA está em meu branch ou não. Veja minha resposta abaixo sobre como você também pode se confundir pensando que a mensagem de commit é um indicativo da mudança - há uma situação em que não é, e foi isso que me levou a esta questão originalmente. O cérebro de alguém tende a fazer esses atalhos e eles podem ocasionalmente voltar para mordê-lo.Observe também que adicionar um arquivo vazio (por exemplo
.gitkeep
) à árvore é considerado por escolha seletiva como um commit vazio.fonte
Então, aqui está Outra situação confusa em que isso pode surgir: Eu tive o seguinte:
Eu estava tentando escolher 9a7b12e que aparentemente não é nada - ele até tentou me dizer nessa linha na saída do log do git que 4497428 era o que eu realmente queria. (O que eu fiz foi apenas procurar a mensagem de confirmação e peguei o primeiro hash que vi que a tinha). De qualquer forma, só quero que as pessoas saibam que há outra maneira de ser enganado e tentar escolher um não op.
fonte