Git: ¿Cómo deshacer mis cambios después de una request de extracción fallida?

Realicé algunos cambios en un package en Github y envié una request de extracción. El autor decidió no fusionar mis cambios, así que me fui con una copy diferente del package. ¿Cómo revertir mis cambios y crear otra request de extracción con código nuevo pero sin presionar el código rechazado?

De tu cabeza maestra, que aguas arriba no quería

 $ git checkout -b myunwantedbranch $ git checkout master $ git reset --hard upstream/master 

Tus cambios locales ahora están en la twig myunwantedbranch, y tu maestría es igual a la anterior. (De hecho, está creando el nombre correcto para esta twig y luego rebobinando todas las cosas no deseadas de la twig principal).

Nota: Soy un git newb, así es como hice la tarea cuando tuve un problema casi idéntico: si está mal, por favor corrígeme.

Suponiendo que el repository original (del que se bifurcó) se mantiene en seguimiento con un control remoto denominado upstream , puede:

 git checkout upstream/master git checkout -b <new-branch> 

Por lo tanto, tendrá una nueva twig con nombre que tiene un "punto de partida" donde se encuentra la twig principal del repository original.


Si el repository original se actualizó desde entonces, es posible que desee realizar una búsqueda primero

 git fetch upstream master git checkout FETCH_HEAD # or upstream/master git checkout -b <new-branch> 

Además, si no le importan sus cambios y desea deshacerse de ellos por completo, simplemente puede ejecutar

 git reset --hard upstream/master # go back to where you were # before and changes were made git pull upstream # update your repository 

tenga en count que este último fragment de código eliminará sus cambios y se perderán. Entonces úsala solo si sabes lo que estás haciendo.


EDITAR:
Acabo de ver el comentario de Dogbert. Ese enlace describe cómo puede get la twig principal ascendente y get los cambios incorporados desde ese punto. Expliqué cómo crear una nueva twig que esté sincronizada con la twig principal de la stream ascendente. Entonces, no estoy realmente seguro de lo que necesitas ahora.

Tuve confirmaciones locales que quería enviar a mi repository, pero luego me di count de que todavía tengo compromisos antiguos que fueron rechazados en una request de extracción anterior, así que tengo que deshacerlos antes de presionar.

Lo que hice:

  1. Cree una nueva sucursal git checkout -b reverting_changes_branch
  2. Ejecutar git reset --hard upstream/master
  3. Force push cambia con -f, como este git push -f origin master
  4. Regresé a mi twig original y presioné mis commits

Esta fue mi manera segura de hacerlo, tal vez hay una manera más simple.