J'ai cloné un référentiel git d'un certain projet. Puis-je remettre les fichiers à leur état initial et quand je les passe en revue, passez à la révision 2, 3, 4 ... la plus récente? J'aimerais avoir un aperçu de l'évolution du projet.
git
revision
revision-history
xralf
la source
la source
git log -n1
. Mais à moins d’git checkout
échouer, c’est un gaspillage d’efforts.git log
ne montre que le premier commit maintenant, puis-je trouver le sha1 du prochain commit?git log --oneline
et coller la sortie dans un fichier texte pour référence (les sommes abrégées sha1 qu'il fournit sont garanties d'être uniques). Une autre option, si votre historique est linéaire, est de déterminer le nombre de commits depuis le premier commit jusqu'à ce qu'ils soientmaster
utilisésgit checkout master~543
(s'il y a 543 commits)git checkout master~542
, etc.Pour accéder à une version / validation particulière, exécutez les commandes suivantes. CODE HASH que vous pouvez obtenir
git log --oneline -n 10
Remarque - Après avoir réinitialisé une version / validation particulière, vous pouvez exécuter
git pull --rebase
, si vous souhaitez ramener toutes les validations qui sont rejetées.la source
reset
pas seulement extraire un point particulier dans le graphique, il déplacera également votre branche actuellement extraitereset
, toutes vos modifications en attente sont ignorées.git pull --rebase
ne fonctionne que si vous avez une télécommande pour votre repo et qu'elle est à jour.Vous pouvez obtenir une vue graphique de l'historique du projet avec des outils comme
gitk
. Exécutez simplement:Si vous souhaitez retirer une branche spécifique:
Pour une validation spécifique, utilisez le hachage SHA1 au lieu du nom de la branche. (Voir Treeish dans le Git Community Book , qui est une bonne lecture, pour voir d'autres options pour naviguer dans votre arbre.)
git log
dispose d'un ensemble d'options pour afficher également un historique détaillé ou résumé.Je ne connais pas de moyen simple d' avancer dans l'historique des validations. Les projets avec une histoire linéaire ne sont probablement pas si communs. L'idée d'une "révision" comme vous le feriez avec SVN ou CVS ne correspond pas si bien à Git.
la source
En utilisant la clé SHA1 d'un commit, vous pouvez effectuer les opérations suivantes:
Tout d'abord, recherchez le commit que vous souhaitez pour un fichier spécifique:
git log -n <# commits> <file-name>
Ceci, en fonction de votre
<# commits>
, générera une liste de validations pour un fichier spécifique.CONSEIL: si vous n'êtes pas sûr de vous engager cherchez, une bonne façon de savoir est d' utiliser la commande suivante:
git diff <commit-SHA1>..HEAD <file-name>
. Cette commande montrera la différence entre la version actuelle d'un commit et une version précédente d'un commit pour un fichier spécifique.REMARQUE: la clé SHA1 d'un commit est formatée dans la
git log -n
liste des comme:Ensuite, vérifiez la version souhaitée:
Si vous avez trouvé la version / commit souhaitée, utilisez simplement la commande:
git checkout <desired-SHA1> <file-name>
Cela placera la version du fichier que vous avez spécifié dans la zone de transfert. Pour le retirer de la zone de transit, utilisez simplement la commande:
reset HEAD <file-name>
Pour revenir à l'endroit où le référentiel distant est pointé, utilisez simplement la commande:
git checkout HEAD <file-name>
la source
J'étais dans une situation où nous avons une branche principale, puis une autre branche appelée 17.0 et à l'intérieur de cette 17.0, il y avait un hachage de validation sans dire "XYZ" . Et le client reçoit une version jusqu'à cette révision XYZ. Nous avons maintenant rencontré un bug et cela doit être résolu pour ce client. Nous devons donc créer une branche distincte pour ce client jusqu'à ce hachage "xyz". Voici donc comment je l'ai fait.
J'ai d'abord créé un dossier avec ce nom de client sur ma machine locale. Dites que le nom du client est "AAA" une fois que ce dossier est créé, émettez la commande suivante à l'intérieur de ce dossier:
la source
Une façon serait de créer toutes les validations jamais apportées aux correctifs. extraire le commit initial puis appliquer les correctifs dans l'ordre après la lecture.
utiliser
git format-patch <initial revision>
et ensuitegit checkout <initial revision>
. vous devriez obtenir une pile de fichiers dans votre directeur en commençant par quatre chiffres qui sont les correctifs.quand vous avez fini de lire votre révision, faites
git apply <filename>
ce qui devrait ressemblergit apply 0001-*
et compter.Mais je me demande vraiment pourquoi vous ne voudriez pas simplement lire les correctifs à la place? Veuillez poster ceci dans vos commentaires parce que je suis curieux.
le manuel de git me donne aussi ceci:
vous pouvez également consulter
git blame filename
ce qui vous donne une liste où chaque ligne est associée à un hachage de validation + auteur.la source
Pour accéder à un code validé spécifique, vous avez besoin du code de hachage de cette validation. Vous pouvez obtenir ce code de hachage de deux manières:
git log
et vérifiez vos validations récentes sur cette branche. Il vous montrera le code de hachage de votre validation et le message que vous avez laissé pendant que vous validiez votre code. Copiez et faitesgit checkout commit_hash_code
Après avoir migré vers ce code, si vous souhaitez travailler dessus et apporter des modifications, vous devez créer une autre branche avec
git checkout -b <new-branch-name>
, sinon, les modifications ne seront pas conservées.la source
Pour vérifier un commit (nb vous regardez le passé!).
Pour redémarrer brutalement à partir d'un commit et supprimer les dernières branches que vous avez probablement gâchées.
la source