Existe-t-il un moyen de garder une trace des commandes que j'ai utilisées dans Git sous Windows? Je souhaite afficher toutes les commandes que j'ai appliquées à mon référentiel.
Je veux pouvoir revenir en arrière dans l'historique des commandes et déterminer la commande qui a causé le problème, le cas échéant.
Voir l'historique des commits serait une chose, mais pour conserver un historique d'autres actions telles que la création d'une branche ou l'ajout d'une télécommande, sont-elles suivies?
.git/logs
, vous verrez l'historique de ce que chaque branche a pointé.push
ing ne change pas l'état d'une branche locale,reflog
apparemment ne les stocke paspush
, donc regarder.git/logs/refs/remotes/*/*
est le seul moyen de voir votrepush
historique.Réponses:
git affichera les changements dans les commits qui affectent l'index, tels que
git rm
. Il ne stocke pas de journal de toutes les commandes git que vous exécutez.Cependant, un grand nombre de commandes git affectent l'index d'une certaine manière, comme la création d'une nouvelle branche. Ces modifications apparaîtront dans l'historique des validations, que vous pouvez afficher avec
git log
.Cependant, il y a des changements destructeurs que git ne peut pas suivre, tels que
git reset
.Donc, pour répondre à votre question, git ne stocke pas d'historique absolu des
git
commandes que vous avez exécutées dans un référentiel. Cependant, il est souvent possible d'interpoler la commande que vous avez exécutée via l'historique des validations.la source
git history
serait utile pour voir par exemple quelles commandes ont été exécutées dans un clone particulier .git reflog
est ce que vous voulez. Voir la réponse ci-dessous.git reflog
montre en fait les commandes elles-mêmes. De plus, BTW, le shell n'est qu'un moyen légèrement plus direct pour déduire les commandes git, mais un dépôt git peut être touché par plusieurs shells. Il vaut mieux demander à git quelles commandes ont été utilisées.Vous pouvez voir l'historique avec git-reflog ( exemple ici ):
la source
git reflog
afficherait toutes les positions suivies par votre HEAD, mais pas toutes les commandes git. Les commandes Git qui ne bougent pas la tête (par exemplegit branch -D my_precious_branch
) n'apparaîtront pas là-haut.git reflog --all
?git remote add foo bar
. il n'apparaîtra pas dansgit reflog --all
, car il ne modifie pas le pointeur HEAD.git reflog
ne me montre pas de commandes commegit status
aso., avec ou sans--all
paramètre.Un journal de vos commandes peut être disponible dans l'historique de votre shell.
Si voir la liste des commandes exécutées ne vous convient pas, exportez la liste dans un fichier.
Vous pouvez restreindre le vidage exporté pour afficher uniquement les commandes contenant "git" en le canalisant avec grep
L'historique peut contenir des lignes formatées comme telles
En utilisant le numéro, vous pouvez réexécuter la commande avec un point d'exclamation
la source
Si vous utilisez CentOS ou une autre saveur Linux, faites simplement
Ctrl
+R
à l'invite et tapezgit
.Si vous continuez d'appuyer sur
Ctrl
+R
, une recherche inversée dans votre historique sera effectuée pour les commandes commençant pargit
la source
Tapez
history
votre terminal. Ce n'est pas techniquement git, mais je pense que c'est ce que vous voulez.la source
Si vous utilisez Windows PowerShell, vous pouvez taper "git" et appuyer sur F8. Continuez à appuyer sur F8 pour parcourir toutes vos commandes git.
Ou, si vous utilisez cygwin, vous pouvez faire la même chose avec ^ R.
la source
J'ai découvert que dans ma version de git bash "2.24.0.windows.2" dans mon dossier "home" sous les utilisateurs de Windows, il y aura un fichier appelé ".bash-history" sans extension de fichier dans ce dossier. Il n'est créé que lorsque vous quittez bash.
Voici mon workflow:
Si vous voulez vraiment des points, je suppose que vous pouvez créer un fichier batch pour faire tout cela, mais cela me suffit. J'espère que ça aide quelqu'un.
la source