Je voudrais déterminer si un dépôt git distant (origine) contient une validation particulière. Mon cas d'utilisation est le suivant:Déterminer si un dépôt Git contient un commit particulier
Je me prépare à créer une version publique. Je veux inclure le SHA-1 du commit représentant la base de code vierge à partir de laquelle je construis la version.
Je veux également m'assurer que le commit n'est pas seulement un commit local, mais qu'il a en fait été poussé vers un dépôt central (origin).
Je pense
git pull --all & git branch --contains commit-hash
, puis en examinant la sortie pour voir si elle contient la branche de suivi de la branche actuelle, fonctionne, mais semble assez lourde. Je cherche quelque chose d'un peu plus succinct comme git remote --contains origin commit-hash
, ou git cat-file origin commit-hash
. Je suppose qu'il doit y avoir une commande de plomberie que Git utilise pour déterminer quels objets doivent être transférés pendant une poussée ou une traction - je ne suis pas assez familier avec les internes.
Merci pour l'aide.
hmmm ... J'avais négligé l'option -r. Cela fonctionnerait, mais je pense toujours qu'il doit y avoir une commande de plomberie qui me manque. Et vraiment, je me fiche que la branche de suivi de la branche actuelle contienne ou non la validation. Je me soucie juste que le commit existe en origine, sans tenir compte de la branche à partir de laquelle il est accessible. – Josh
@Josh: Sûrement s'il s'agit d'une version publique, vous vous souciez de la branche sur laquelle elle se trouve - elle devrait être sur la branche pour cette version spécifique. – Cascabel
Comme pour un script, il est préférable d'utiliser l'équivalent de plomberie: 'git merge-base --is-ancestor' –
JaviMerino