Então, eu estou trabalhando em um projeto com outras pessoas, e há vários garfos no github sendo trabalhados. Alguém acabou de corrigir um problema e eu me fundi com o garfo dele, mas então percebi que poderia encontrar uma solução melhor. Quero reverter o commit que acabei de fazer. Eu tentei fazer isso com git revert HEAD
mas me deu este erro:
fatal: Confirmar <SHA1> é uma mesclagem, mas nenhuma opção -m foi fornecida.
O que isso significa? Quando mesclei e confirmei, usei a opção -m para dizer "Mesclado com <nome do usuário>".
O que eu estou fazendo errado aqui?
fonte
git cat-file -p [MERGE_COMMIT_ID]
mostrará as ramificações principais em ordem. O primeiro listado seria-m 1
o segundo-m 2
.git revert [HASH] -m 2
está me dizendo No ramo 1.x-1.x nada para confirmar, o diretório de trabalho está limpo, mas meu commit não é revertido.Digamos que o outro cara tenha criado uma barra em cima de foo, mas você criou o baz nesse meio tempo e depois se fundiu, fornecendo um histórico de
Nota: git lola é um alias não padrão, mas útil.
Nenhum dado com
git revert
:Charles Bailey deu uma excelente resposta, como sempre. Usando
git revert
como emefetivamente exclui
bar
e produz um histórico deMas suspeito que você deseja jogar fora o commit de mesclagem:
Conforme documentado no
git rev-parse
manualportanto, antes de chamar
git reset
,HEAD^
(ouHEAD^1
) era b7e7176 eHEAD^2
c7256de, ou seja , respectivamente o primeiro e o segundo pais da consolidação de mesclagem.Tenha cuidado,
git reset --hard
pois pode destruir o trabalho.fonte
lola
aos seus comandos git:git config --global alias.lola "log --graph --decorate --pretty=oneline --abbrev-commit --all"
Eu tive esse problema, a solução era olhar para o gráfico de confirmação (usando o gitk) e ver se eu tinha o seguinte:
Eu entendo agora que eu quero fazer
Isso ocorre porque
-m 1
seria mesclado com base no pai comum, onde, como-m 2
mesclas com base no ramo y, é para o qual eu quero escolher.fonte
git-revert
, o que é essa questão.-m
opção, não exclusivamente sobregit merge
. Ou seja, o raciocínio por trás do uso da-m
opção parece ser semelhante para os reversos e escolhas de cereja. Se isso não for verdade, informe-nos. Como não encontrei outras perguntas que abordem especificamente o uso escolhido por ele, agradeço por esta resposta, que provavelmente levou o Google a me ajudar a encontrar essa pergunta e a uma discussão útil e relevante!