Estou trabalhando em um projeto usando Git como VCS. Eu tenho um ramo xyz
cortado do ramo principal do master. Depois de trabalhar por um tempo, comprometi meu código e puxei a linha principal do branch.
A atração foi boa. Em seguida, mesclei o código com o mestre. Após a fusão, ocorreram problemas em alguns arquivos. Não comprometi o código após a fusão. Alguém pode me orientar sobre como posso abortar essa mesclagem e trazer meu branch onde estou trabalhando atualmente para o estado em que estava antes de eu fundi-lo?
revert
é o nome de um comando que cria um novo commit revertendo as mudanças em um commit anterior, então essa provavelmente não é a palavra que você está procurando aqui. Eu editei sua pergunta para esclarecer.Respostas:
contanto que você não se comprometeu você pode digitar
assim como a linha de comando sugeriu.
fonte
error: Entry 'MyFile.java' not uptodate. Cannot merge. fatal: Could not reset index file to revision 'HEAD'.
Se você fizer "git status" enquanto tiver um conflito de mesclagem, a primeira coisa que o git mostra é como abortar a mesclagem.
fonte
git reset HEAD <file>
que efetivamente removeu o "merge" recolhível do controle de origem da extensão git => então eu poderia resolver os conflitos ou apenas reverter minhas alterações na lista de extensões GIT :)Verdade seja dita, existem muitos, muitos recursos que explicam como fazer isso já disponíveis na web:
Git: como fazer a mesclagem reversa de um commit?
Git: como fazer a mesclagem reversa de um commit?
Desfazendo Merges , do blog do Git (recuperado da Wayback Machine do archive.org)
Então, acho que vou apenas resumir alguns deles:
git revert <merge commit hash>
Isso cria um commit extra de "reversão" dizendo que você desfez uma fusão
git reset --hard <commit hash *before* the merge>
Este histórico redefiniu para antes de você fazer a fusão. Se você tiver commits após a fusão, você precisará
cherry-pick
deles para depois.Mas, honestamente, este guia aqui é melhor do que qualquer coisa que eu possa explicar, com diagramas! :)
fonte