57 votes

git: vérifie si commit xyz dans le dépôt distant?

J'ai un commit xyz dans ma branche locale que je veux vérifier s'il est inclus dans un référentiel de versions distant. puis-je faire cela d'une manière simple? Je pourrais cloner le repo distant, mais j'espère un moyen plus agréable et plus rapide. git ls-remote semblait prometteur, mais il ne m'a trouvé aucune valeur à cet égard. Merci!

88voto

Mark Longair Points 93104

Supposons que la distance qui fait référence au dépôt distant est appelé origin. Dans ce cas, la première mise à jour de tous vos distance de suivi des branches avec:

git fetch origin

Maintenant, vous pouvez utiliser l'utile --contains option d' git branch pour savoir qui de la télécommande branches contient qui s'engagent:

git branch -r --contains xyz

(L' -r moyen d'afficher uniquement à distance-suivi des branches.) Si le commit xyz sont contenues dans un ou plusieurs de vos distance de suivi de branches, vous verrez sortie comme:

  origin/test-suite
  origin/HEAD -> origin/master
  origin/master

Si c'est contenue dans votre dépôt local, mais pas celui de la distance de suivi des branches, la sortie sera vide. Toutefois, si le commit n'est pas connu dans votre référentiel à tous, vous obtiendrez l'erreur malformed object name et un message d'utilisation - peut-être un peu déroutant si vous n'êtes pas attendre...

13voto

sehe Points 123151

Comme le dit Mark,

 git branch -a --contains commitish

Cependant, méfiez-vous de branches qui contiennent une cerise cueillies/relocalisée/version fusionnée de le commettre.

Cela pourrait venir dans maniable

 git log --cherry-pick --left-right <commitish> ^remote/branchname

Il liste les commettre SEULEMENT si il n'existe pas (comme un cherrypick) dans la branche distante. Voir la page de man pour le journal pour une explication sur comment-cherry-pick identifie équivalent s'engage

Bien sûr fusionne/rebases avec des résolutions de conflits ou de courges ne sont pas automatiquement détectés comme ceci

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X