J'utilise Sourcetree pour Windows pour un référentiel git et je souhaite annuler un commit non pushé.
Est-ce possible? Si je «rétablis le commit», il crée un deuxième commit qui annule le premier commit, mais je ne veux pas que le premier commit apparaisse dans mon contrôle de code source.
Je pourrais également supprimer mon référentiel local et le récupérer à nouveau sans mon commit local, mais peut-être qu'il y a un autre moyen?
Une réinitialisation logicielle conservera vos modifications locales.
Source: https://answers.atlassian.com/questions/153791/how-should-i-remove-Push-commit-from-sourcetree
Modifier
À propos de git revert
: Cette commande crée un nouveau commit qui annulera les autres commits. Par exemple. Si vous avez un commit qui ajoute un nouveau fichier, git revert
peut être utilisé pour faire un commit qui supprimera le nouveau fichier.
À propos de l'application d'une réinitialisation logicielle: Supposons que vous avez les validations A
à E
(A---B---C---D---E
) et que vous souhaitez supprimer le dernier commit (E
). Ensuite, vous pouvez effectuer une réinitialisation logicielle pour commettre D
. Avec une réinitialisation logicielle, commit E
sera supprimé de git mais les modifications locales seront conservées. Il y a plus d'exemples dans la documentation git reset .
Si vous sélectionnez l'entrée de journal à laquelle vous souhaitez revenir, vous pouvez cliquer sur "Réinitialiser à cette validation". Utilisez cette option uniquement si vous n'avez pas appliqué les modifications de validation inverse. Si vous craignez de perdre les modifications, vous pouvez utiliser le mode souple qui laissera un ensemble de modifications non validées (ce que vous venez de modifier). L'utilisation de la copie de travail mixte réinitialise la copie de travail mais conserve ces modifications. Un disque va simplement se débarrasser entièrement des modifications. Voici quelques captures d'écran:
Si vous êtes sur une autre branche, vous devez d'abord "vérifier cette validation" pour la validation que vous souhaitez supprimer, puis seulement "réinitialiser la branche actuelle à cette validation" en choisissant une validation précédente, fonctionnera.
Si vous souhaitez supprimer un commit, vous pouvez le faire dans le cadre d'une base interactive. Mais faites-le avec prudence, pour ne pas gâcher votre rapport.
En Sourcetree:
Découvrez ceci article de blog d'Atlassian pour plus d'informations sur le rebasage interactif dans Sourcetree.