Question Comment savoir à quelle branche un github commit était destiné?


Sur github, lorsque je visualise un commit, il affiche le message de validation et les modifications, ainsi que tout commentaire en bas. Cependant, cela ne me dit pas à quelle branche le commit a été enregistré. Même si je «Code de navigation», il est en train de parcourir le code pour un «arbre» ​​particulier (probablement l'état du code lorsque la validation a été effectuée), plutôt que pour une branche particulière.

Je sais que les commits en git ne sont pas intrinsèquement liés à une branche, mais ils sont va toujours être d'abord engagé dans une branche particulière? Le commit n'est-il pas étiqueté avec cette branche et puis-je voir quelle branche il était en quelque sorte?


20
2018-02-20 12:03


origine


Réponses:


OK, la réponse à cette question est fondamentalement: il n’ya pas de moyen définitif de le dire. En fait, Mercurial marque les commits avec le nom de la branche dans laquelle ils ont été enregistrés, mais git ne le fait tout simplement pas. apparemment, le nom de la succursale n’était pas considéré comme important. C'était une décision de conception et il ne semble pas que cela va changer.


11
2017-10-02 09:22



Si vous connaissez le numéro d’engagement, vous pouvez le faire simplement

git branch --contains <commit>

Cela devrait vous donner le nom de la branche dans laquelle la validation a été faite.

METTRE À JOUR: Sur GitHub en particulier, vous pouvez désormais voir la branche à laquelle appartient un commit. Les détails du blog "Branch and Tag Labels For Commit Pages":

Si le commit n'est pas sur la branche par défaut, l'indicateur affichera les branches qui contiennent le commit. Si la validation fait partie d'une demande d'extraction non fusionnée, un lien sera affiché.

enter image description here


7
2018-03-27 14:11



De git help branch:

Avec --contains, affiche uniquement les branches contenant le commit nommé (en d’autres termes, les branches dont le bout est validé sont les descendants du commit nommé).

Avec --merged, seules les branches fusionnées dans le commit nommé (c'est-à-dire les branches dont les commits de conseil sont accessibles depuis le commit nommé) seront listées.

Avec - no-merged, seules les branches non fusionnées dans le commit nommé seront listées. Si l'argument est manquant, la valeur par défaut est HEAD (c'est-à-dire la pointe de la branche en cours).


4
2018-02-20 12:47



Si la validation est assez récente, vous pouvez accéder à votre graphique réseau (par exemple, https://github.com/BenHocking/ShortCircuitGA/network) et survolez chaque noeud d’une branche jusqu’à ce que vous trouviez le commit que vous recherchez. Ce n'est pas efficace, mais c'est le seul moyen de savoir comment le faire directement à partir de GitHub. (Si vous avez des clients SourceTree, GitX ou d'autres clients Visual Git, il pourrait y avoir d'autres alternatives, ainsi que des alternatives à la ligne de commande.)


3
2018-02-20 12:18



Commencez à soumettre une demande d'extraction pour le commit. Vous verrez la branche source par défaut du côté "de".


1
2017-10-18 01:23



Cette réponse ne sera pas utile pour les archivages précédents, mais j'utilise le script hook comm-msg suivant pour ajouter la branche actuelle à chaque message de validation.

#!/bin/sh
#
export BRANCH=`git status | head -1 | cut -c13-`
echo -n "($BRANCH) - " > .git/tmp-msg
cat $1 >> .git/tmp-msg
mv .git/tmp-msg $1

exit 0

0
2018-02-13 14:30