Maison >outils de développement >git >Comment pousser le validation spécifié

Comment pousser le validation spécifié

Johnathan Smith
Johnathan Smithoriginal
2025-03-06 13:39:17778parcourir

Pousser un engagement spécifique dans une branche distante: un guide complet

Cet article répond à plusieurs questions GIT communes liées à la poussée spécifique des branches éloignées. Nous explorerons comment y parvenir en utilisant diverses commandes et stratégies GIT.

Comment pousser un engagement spécifique

Pousser un seul engagement spécifique dans une branche distante nécessite l'utilisation de la commande git push avec un hachage de validation spécifique. Disons que vous souhaitez pousser Commit a1b2c3d4 à la branche remote-branch de votre référentiel distant. Vous ne pouvez pas spécifier directement un seul engagement avec un simple git push origin remote-branch. Au lieu de cela, vous devez créer une nouvelle référence pointant vers cet engagement spécifique sur votre référentiel local, puis repousser cet refuge vers la télécommande. Cela se fait en utilisant les étapes suivantes:

  1. Trouvez le hachage de validation: Utilisez git log pour identifier le hachage SHA-1 de l'engagement que vous souhaitez pousser. Il s'agit généralement d'une chaîne hexadécimale de 40 caractères (par exemple, a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6).
  2. Créer une réf: Créer une branche temporaire (ou utiliser une existante si appropriée) pointant vers votre engagement souhaité. Par exemple:

    <code class="bash">git branch temp-branch a1b2c3d4</code>
  3. Poussez la référence temporaire: Poussez cette branche temporaire vers le référentiel distant. Spécifiez le nom de la télécommande (origin dans la plupart des cas) et le nom de la branche (temp-branch dans cet exemple):

    <code class="bash">git push origin temp-branch</code>
  4. (Facultatif) Supprimer la branche temporaire: Après avoir poussé, vous pouvez supprimer la branche temporaire locale et démêlée si vous n'avez pas besoin:

    <code class="bash">git branch -d temp-branch
    git push origin :temp-branch</code>
  5. Le commit spécifié est poussé. La branche distante ne contiendra désormais que ce seul engagement. N'oubliez pas de remplacer
,

, et a1b2c3d4 par vos valeurs réelles. origin remote-branch Comment puis-je pousser de manière sélective qu'un seul engagement dans une branche distante?

La méthode décrite ci-dessus - créant une branche temporaire et la poussant - est le moyen le plus fiable de sélectivement à un seul engagement. Essayer d'utiliser la cueillette ou d'autres méthodes directement sur la branche distante peut entraîner des incohérences et fusionner les conflits, surtout si la branche distante a considérablement divergé de votre branche locale. L'approche de branche temporaire fournit un moyen propre et contrôlé d'ajouter le seul engagement sans affecter le reste de l'historique de la branche.

Quelle commande dois-je utiliser pour pousser un engagement particulier sans pousser les commits ultérieurs?

La séquence de commande décrite dans la première section est la plus appropriée. L'utilisation de git push origin <branch>:<commit> ne fonctionnera pas de manière fiable parce que Git attend une référence de branche, pas un seul hachage de validation, pour la source. La succursale temporaire agit comme cette référence nécessaire, isolant proprement le seul engagement pour l'opération push.

Y a-t-il un moyen de pousser un engagement spécifique à une branche différente de ma branche actuelle?

Oui, absolument. La méthode décrite dans la première section fonctionne quelle que soit votre branche actuellement vérifiée. Vous spécifiez simplement le nom de la branche cible pendant la commande git push. Par exemple, pour pousser Commit a1b2c3d4 à une branche éloignée nommée different-branch, vous utiliseriez:

  1. Créer une branche temporaire: git branch temp-branch a1b2c3d4
  2. Pousser la branche temporaire: git push origin temp-branch:different-branch
  3. (optionnelle) Deleter la branche temporaire: git branch -d temp-branch et git push origin :temp-branch

Cette commande temporaire (temp-branch different-branch different-branch au référentiel distant, mais sous le nom different-branch. Cela place efficacement l'engagement spécifique sur une branche différente de la télécommande. N'oubliez pas que cela créera ou mettra à jour le

sur la télécommande. Si existe déjà et a divergé de votre branche locale, cela peut entraîner des conflits plus tard. Un examen attentif de l'historique de la branche à distance existant est essentiel.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn