git revertir en Egit

¿Es posible hacer "git revert" en Egit para revertir los cambios creando una nueva confirmación (en lugar de verificar una confirmación más antigua o hacer un restablecimiento completo que no crea una nueva confirmación que revierte los cambios)?

Esto parece ser una característica importante si tiene un repository central en caso de que necesite deshacer cambios que ya se hayan realizado allí.

¡Gracias por adelantado!

Si considera esta confirmación desde hace 5 días , llamada ' Fusionar' Implementar un command de revertir ' ' (Shawn Pearce), parece que estará disponible pronto.

Los diff están aquí :

public class RevertCommandTest extends RepositoryTestCase { @Test public void testRevert() throws IOException, JGitInternalException, GitAPIException { Git git = new Git(db); writeTrashFile("a", "first line\nsec. line\nthird line\n"); git.add().addFilepattern("a").call(); git.commit().setMessage("create a").call(); writeTrashFile("b", "content\n"); git.add().addFilepattern("b").call(); git.commit().setMessage("create b").call(); writeTrashFile("a", "first line\nsec. line\nthird line\nfourth line\n"); git.add().addFilepattern("a").call(); git.commit().setMessage("enlarged a").call(); writeTrashFile("a", "first line\nsecond line\nthird line\nfourth line\n"); git.add().addFilepattern("a").call(); RevCommit fixingA = git.commit().setMessage("fixed a").call(); writeTrashFile("b", "first line\n"); git.add().addFilepattern("b").call(); git.commit().setMessage("fixed b").call(); git.revert().include(fixingA).call(); assertTrue(new File(db.getWorkTree(), "b").exists()); checkFile(new File(db.getWorkTree(), "a"), "first line\nsec. line\nthird line\nfourth line\n"); Iterator<RevCommit> history = git.log().call().iterator(); assertEquals("Revert \"fixed a\"", history.next().getShortMessage()); assertEquals("fixed b", history.next().getFullMessage()); assertEquals("fixed a", history.next().getFullMessage()); assertEquals("enlarged a", history.next().getFullMessage()); assertEquals("create b", history.next().getFullMessage()); assertEquals("create a", history.next().getFullMessage()); assertFalse(history.hasNext()); } } 
  • instalar la última noche de EGit (0.11.xx)
  • abrir vista de historial
  • haga clic derecho en la confirmación que desea revertir en la twig actualmente desprotegida
  • click "Revertir Commit"

– Matthias

No puedo hacer ningún comentario debido a mi baja reputación, pero quería agregar la última parte a la respuesta de @Matthias Sohn en caso de que alguien, como yo, encuentre esto al search cómo hacer esto. Sus pasos están aquí abajo para que no tenga que desplazarse:

  • instalar la última noche de EGit (0.11.xx)
  • abrir vista de historial
  • haga clic derecho en la confirmación que desea revertir en la twig actualmente desprotegida
  • click "Revertir Commit"

Esto agregará una input en la parte superior de la vista del historial "Revertir [comentario de confirmación anterior]". Si hace clic derecho en esta nueva input, verá una opción para confirmar la operación Revertir. Debes hacerlo desde la vista Historial porque, como dijo @Lennon, no puedes confirmar y enviar desde el Explorador de packages.

La desventaja de este método es que revertirá todos los cambios en el Compromiso. Preferiría poder retrotraer solo un file específico que estaba en un set de cambios, así que si alguien sabe de una manera de hacerlo, por favor, agrégalo.

Haga clic derecho sobre el file que desea revertir -> Reemplazar con -> revisión HEAD