Existe-t-il un moyen de déterminer quand une branche Git a été créée? J'ai une branche dans mon référentiel et je ne me souviens pas l'avoir créée et j'ai pensé que peut-être que voir l'horodatage de la création me rafraîchirait la mémoire.
git
branch
git-branch
paxos1977
la source
la source
Réponses:
Utilisation
Si vous préférez le voir en contexte en utilisant gitk, utilisez
(où foo est le nom de la branche que vous recherchez.)
la source
Comme indiqué dans les commentaires et dans la réponse de Jackub , tant que votre branche est plus jeune que le nombre de jours défini dans le paramètre de configuration
gc.reflogexpire
(la valeur par défaut est 90 jours), vous pouvez utiliser votre reflog pour savoir quand une référence de branche a été d'abord créé.Notez que cela
git reflog
peut prendre la plupart desgit log
drapeaux. Notez en outre que lesHEAD@{0}
sélecteurs de style sont effectivement des notions de temps et, en fait, sont traités (d'une manière piratée) comme des chaînes de date. Cela signifie que vous pouvez utiliser l'indicateur--date=local
et obtenir une sortie comme celle-ci:Il peut également être utile d'utiliser parfois
--date=relative
:Une dernière remarque: l'
--all
indicateur (qui est vraiment un indicateur git-log compris par git-reflog) affichera les reflogs pour toutes les références connuesrefs/
(au lieu de simplementHEAD
), ce qui vous montrera clairement les événements de branche:la source
gc.reflogexpire
jours.Pro Git § 3.1 Git Branching - Ce qu'est une branche a une bonne explication de ce qu'est vraiment une branche git
Puisqu'une branche est juste un pointeur léger, git n'a aucune notion explicite de son historique ou de sa date de création. "Mais attendez," je vous entends dire, "bien sûr, git connaît mon histoire de branche!" Eh bien, en quelque sorte.
Si vous exécutez l'une des opérations suivantes:
vous verrez ce qui ressemble à «l'historique de votre branche», mais il s'agit en fait d'une liste de validations accessibles depuis «branch» qui ne sont pas accessibles depuis master. Cela vous donne les informations que vous voulez, mais si et seulement si vous n'avez jamais fusionné la «branche» vers le maître et n'avez jamais fusionné le maître dans la «branche» depuis que vous l'avez créée. Si vous avez fusionné, cet historique de différences s'effondrera.
Heureusement, le reflog contient souvent les informations que vous souhaitez, comme expliqué dans diverses autres réponses ici. Utilisez ceci:
pour montrer l'histoire de la branche. La dernière entrée de cette liste est (probablement) le point auquel vous avez créé la branche.
Si la branche a été supprimée, 'branch' n'est plus un identifiant git valide, mais vous pouvez l'utiliser à la place, ce qui peut trouver ce que vous voulez:
Ou dans un shell cmd Windows:
Notez que reflog ne fonctionnera pas efficacement sur les branches distantes, uniquement celles sur lesquelles vous avez travaillé localement.
la source
gc.reflogexpire
jours, comme indiqué dans cette réponse et cette réponse .git reflog --date=local <branch>
Tout d'abord, si votre branche a été créée en quelques
gc.reflogexpire
jours (90 jours par défaut, soit environ 3 mois), vous pouvez utilisergit log -g <branch>
ougit reflog show <branch>
pour trouver la première entrée dans reflog, qui serait un événement de création, et ressemble à quelque chose comme ci-dessous (pourgit log -g
):Vous obtiendriez qui a créé une branche, combien d'opérations il y a et à partir de quelle branche (enfin, il pourrait s'agir simplement de "Créé à partir de HEAD", ce qui n'aide pas beaucoup).
C'est ce que MikeSep a dit dans sa réponse .
Deuxièmement, si vous avez une branche depuis plus longtemps
gc.reflogexpire
et que vous avez exécutégit gc
(ou si elle a été exécutée automatiquement), vous devrez trouver un ancêtre commun avec la branche à partir de laquelle elle a été créée. Jetez un œil au fichier de configuration, il y a peut-être unebranch.<branchname>.merge
entrée, qui vous dirait sur quelle branche celle-ci est basée.Si vous savez que la branche en question a été créée à partir de la branche principale (forking à partir de la branche principale), par exemple, vous pouvez utiliser la commande suivante pour voir l'ancêtre commun:
Vous pouvez également essayer
git show-branch <branch> master
, comme alternative.C'est ce que Gbacon a dit dans sa réponse .
la source
Je ne suis pas encore sûr de la commande git, mais je pense que vous pouvez les trouver dans les reflogs.
Mes fichiers semblent avoir un horodatage Unix.
Mise à jour: Il semble y avoir une option pour utiliser l'historique de reflog au lieu de l'historique de validation lors de l'impression des journaux:
Vous pouvez également suivre ce journal, jusqu'au moment où vous avez créé la branche.
git log
affiche la date de la validation, cependant, pas la date à laquelle vous avez effectué l'action qui a fait une entrée dans le reflog. Je ne l'ai pas encore trouvé, sauf en regardant dans le reflog réel dans le chemin ci-dessus.la source
Essaye ça
la source
%
avant(refname)
| cut -c 5- | sort -r |
, puis par le biais de grep pour le mois, me donnant une liste chronologique inversée, plus ou moins.--sort='-committerdate'
(notez le '-' avant la date de validation pour l'ordre chronologique inverse).Utilisation:
pour afficher tout le cycle de vie de votre référentiel dans le dossier actuel. Le nom de la branche qui apparaît en premier (de bas en haut) est la source qui a été créée.
Cela signifie:
Le développement de la branche est créé (checkout -b) à partir du maître
La fonction de branche-jira35 est créée (checkout -b) à partir du développement
La fonction de branche-jira-sut-46 est créée (checkout -b) à partir du développement
la source
C'est quelque chose que j'ai trouvé avant de trouver ce fil.
la source
Cette commande affiche la date de création de la branche à
dev
partir demain
la source
Si vous souhaitez obtenir les détails de toutes les succursales
la source
J'ai trouvé le meilleur moyen: je vérifie toujours la dernière branche créée de cette façon
la source
Combiné avec la réponse d'Andrew Sohn ( https://stackoverflow.com/a/14265207/1929406 )
la source
Cela a fait pour moi: (10 ans plus tard)
Puisqu'il n'y a aucune information stockée sur les heures de création de branche, cela affiche la première validation de chaque branche (
--no-walk
), qui inclut la date de la validation. Utilisation--remotes
pour les succursales distantes ou omettez-le pour les succursales locales.Comme je fais au moins un commit dans une branche avant d'en créer un autre, cela m'a permis de remonter quelques mois de créations de branche (et de dev-start) à des fins de documentation.
source: AnoE sur stackexchange
la source
syntaxe:
git reflog --date=local | grep checkout: | grep ${current_branch} | tail -1
exemple:
git reflog --date=local | grep checkout: | grep dev-2.19.0 | tail -1
résultat:
cc7a3a8ec HEAD@{Wed Apr 29 14:58:50 2020}: checkout: moving from dev-2.18.0 to dev-2.19.0
la source