Comment supprimer un commit Git tout en conservant les modifications

Git Command Line

Présentation de l'inversion de validation Git

Dans le développement logiciel, la gestion du contrôle de version avec Git est essentielle. Parfois, les développeurs s'engagent temporairement pour enregistrer l'état de leur travail avant de changer de branche pour des tâches telles que des démonstrations ou tester d'autres fonctionnalités. Cette pratique maintient le flux de travail flexible mais peut conduire à des changements temporaires qui ne devraient pas devenir permanents.

Cela introduit le besoin de techniques pour annuler les validations sans perdre le travail effectué. Si vous avez validé des modifications temporairement et devez revenir en arrière sans affecter la progression de votre projet, il est crucial de comprendre comment annuler ces validations tout en conservant les modifications.

Commande Description
git reset --soft HEAD^ Annule la dernière validation dans la branche actuelle, mais les modifications restent par étapes (c'est-à-dire prêtes à être revalidées).
git reset HEAD~1 Recule la branche actuelle d'une validation, supprimant efficacement la dernière validation mais laissant les modifications dans le répertoire de travail.
git add . Ajoute tous les fichiers modifiés dans le répertoire actuel à la zone de transit, les préparant pour une validation.
git commit -m "Your message here" Crée une nouvelle validation avec toutes les modifications actuellement effectuées et inclut un message de validation fourni par l'utilisateur.
git push origin development-branch Pousse les validations de la « branche de développement » locale vers la branche distante correspondante.
git push origin development-branch -f Pousse de force les validations vers la branche distante, écrasant potentiellement les modifications dans le référentiel distant. Utilisé avec prudence.

Explication des scripts de réversion Git

Les scripts fournis précédemment sont conçus pour gérer et annuler les modifications dans un référentiel Git sans perdre les modifications apportées à la base de code. Le La commande est essentielle, car elle annule la validation la plus récente sur la branche actuelle tout en conservant toutes les modifications dans un état par étapes. Ceci est particulièrement utile lorsqu'un commit a été effectué prématurément ou simplement comme espace réservé temporaire. La possibilité d'annuler une validation tout en conservant les modifications du fichier permet aux développeurs de réévaluer et de revalider les modifications si nécessaire.

Après la réinitialisation, des commandes comme et sont utilisés pour réorganiser et valider les modifications avec un message de validation plus approprié. Cette série d'actions garantit que le commit temporaire n'interfère pas avec l'historique de la branche tout en préservant l'intégrité du travail effectué. En plus, est utilisé pour mettre à jour le référentiel distant avec le nouveau commit, en remplaçant le temporaire si le push forcé git push -f est jugé nécessaire sur la base des normes de collaboration du projet.

Annuler les validations Git temporaires sans perdre de données

Utilisation de l'interface de ligne de commande Git

git checkout development-branch
git reset --soft HEAD^
# Now the changes are staged but the last commit is undone.
git status
# Shows staged changes. You can now modify if necessary, or commit again.
git add .
git commit -m "New commit after undoing temporary commit"
git log
# Confirm the new commit history.
git push origin development-branch

Gestion des validations temporaires dans Git pour préserver les modifications de code

Application des commandes Git pour un contrôle de version flexible

git checkout development-branch
git reset HEAD~1
# This command undoes the last commit and leaves the changes in your working directory.
git status
# You can see the changes are not staged for commit.
git add .
git commit -m "Recommitting the preserved changes"
git log
# Check to make sure the history is as expected.
git push origin development-branch -f

Techniques Git avancées pour les modifications temporaires

En développant la capacité de Git à gérer efficacement les modifications temporaires, il est important de comprendre le concept de « stashing ». Git stash est un outil puissant qui enregistre temporairement les modifications non validées sans avoir besoin de les valider dans l'historique des versions. Cette fonctionnalité est utile lorsque les développeurs doivent changer rapidement de contexte entre les branches sans engager un travail à moitié fait. Le stashing préserve les modifications planifiées et non planifiées et peut être restauré ultérieurement, ce qui est idéal pour gérer les changements d'orientation inattendus pendant le développement.

Un autre aspect crucial est de comprendre les implications de la poussée forcée avec . Cette commande peut écraser l'historique dans le référentiel distant, ce qui est utile lorsqu'il faut corriger des validations effectuées par erreur ou qui étaient temporaires. Cependant, il doit être utilisé avec prudence car il peut entraîner la perte de commits pour les autres membres de l'équipe s'il n'est pas communiqué correctement. Comprendre ces techniques avancées permet aux développeurs de maintenir un historique de projet propre et efficace dans des environnements collaboratifs.

  1. Quel est le but de ?
  2. Cette commande est utilisée pour annuler le dernier commit dans votre branche actuelle, mais elle conserve les modifications par étapes.
  3. Comment puis-je enregistrer les modifications que je ne souhaite pas valider immédiatement ?
  4. Vous pouvez utiliser pour stocker temporairement vos modifications non validées.
  5. Est-il possible de restaurer les modifications cachées ?
  6. Oui, en utilisant vous pouvez réappliquer les modifications précédemment cachées et les supprimer de la liste de dissimulation.
  7. Quel est le risque d'utiliser ?
  8. La poussée forcée peut écraser les modifications dans le référentiel distant, entraînant potentiellement une perte de travail pour d'autres si elle n'est pas utilisée avec précaution.
  9. Puis-je annuler une réserve git ?
  10. L'annulation d'une réserve peut être effectuée en conservant les modifications ou simplement en n'appliquant pas la réserve.

La gestion efficace des commits temporaires dans Git permet aux développeurs de maintenir un historique de projet propre et garantit que toutes les modifications sont prises en compte, même lorsque les priorités changent. En tirant parti de commandes telles que git reset, git stash et git push, les développeurs peuvent naviguer dans divers scénarios de développement sans perdre de modifications importantes. Ces outils sont essentiels pour tout développeur cherchant à améliorer ses pratiques de contrôle de version et à garantir que son projet reste adaptable à l'évolution des besoins de développement.