Comment puis-je uncommit le dernier commit sur un git dépôt nu?

En prenant en considération qu'il y a plusieurs commandes git qui n'ont pas de sens dans un dépôt nu (nu parce que les référentiels ne pas utiliser d'index et de ne pas avoir un répertoire de travail),

git reset --hard HEAD^ 

n'est pas une solution à uncommit le dernier changement d'un tel référentiel.

La recherche à travers l'Internet, tout ce que je pouvais trouver le sujet est cette, dans lequel je me suis présenté trois façons de le faire:

1. "mise à jour de la ref manuellement (ce qui implique de plomberie)";

2. "git push -f à partir d'un non-dépôt nu";

3. "git branch -f this $that".

La solution de faire yo pense que c'est plus approprié ou que d'autres moyens sont là pour ce faire? Malheureusement, la documentation que j'ai trouvé sur git nu dépôts est assez pauvre.

  • Dobrovol Ne pas utiliser les trucs compliqués ci-dessous. Vous tentez de déplacer la TÊTE d'un commit différent et c'est ce que git reset est destiné, même dans un nu-repo. Par ma réponse ci-dessous, utilisez: git reset --soft <valider> Avec --soft, vous n'avez pas essayez de changer un arbre de travail et l'index qui n'existe pas, donc git vous permet de faire le reset pas de problème.