Avec Git, comment pouvez-vous trouver la différence entre la version actuelle et la dernière?
git diff last version:HEAD
Je ne comprends pas vraiment le sens de "dernière version".
Comme le commit précédent peut être consulté avec HEAD ^, je pense que vous recherchez quelque chose comme:
git diff HEAD^ HEAD
À partir de Git 1.8.5, @
est un alias pour HEAD
. Vous pouvez donc utiliser:
git diff @~..@
Ce qui suit fonctionnera également:
git show
Si vous voulez connaître le diff entre head et n'importe quel commit, vous pouvez utiliser:
git diff commit_id HEAD
Et cela lancera votre outil de diff visuel (s'il est configuré):
git difftool HEAD^ HEAD
Étant donné que la comparaison avec HEAD est la valeur par défaut, vous pouvez l'omettre (comme indiqué par Orient ):
git diff @^
git diff HEAD^
git diff commit_id
~
doit être utilisé à la place de ^
.En supposant que "version actuelle" est le répertoire de travail (modifications non validées) et que "dernière version" est HEAD
(dernières modifications validées pour la branche actuelle), il suffit de faire
git diff HEAD
le crédit pour suivre va à l'utilisateur Cerran
Et si vous ignorez toujours la zone intermédiaire avec -a
lorsque vous validez, vous pouvez simplement utiliser git diff
.
Résumé
git diff
affiche les modifications non mises en scène. git diff --cached
montre les changements mis en scène. git diff HEAD
affiche tous les changements (à la fois staged et unstaged). Source: git-diff (1) Page de manuel - Cerran
Différence entre l'avant-dernier commit et le dernier commit (plus l'état actuel, le cas échéant):
git diff HEAD~
ou même (plus facile à taper)
git diff @~
où @
est le synonyme de HEAD
de la branche actuelle et ~
signifie "donnez-moi le parent de la révision mentionnée".
Vous pouvez le faire aussi:
Comparer avec le commit précédent
git diff --name-status HEAD~1..HEAD
Comparer avec les deux commits actuels et précédents
git diff --name-status HEAD~2..HEAD
Utilisez simplement l'indicateur cached
si vous avez ajouté, mais n'avez pas encore validé:
git diff --cached --color
Rapide et simple, si vous êtes dans le master:
git diff (checkout_id):file.txt file.txt
Exemple:
git diff asdfioei91819280din198:file.txt file.txt
Tout d’abord, utilisez "git log
" pour répertorier les journaux sur le référentiel.
Maintenant, sélectionnez les deux ID de validation correspondant aux deux commits, vous voulez voir les différences ( Exemple - Commit le plus haut et un peu plus ancien [selon vos attentes concernant la version actuelle et une ancienne ]).
Ensuite, utilisez:
git diff <commit_id1> <commit_id2>
ou
git difftool <commit_id1> <commit_id2>
J'utilise bitbucket avec Eclipse IDE avec le plugin Eclipse EGit installé . Je compare un fichier à partir de n’importe quelle version de son historique (comme SVN).
Explorateur de projets> Fichier clic droit> Équipe> Afficher dans l'historique
Ceci apportera l’historique de toutes les modifications sur ce fichier . Maintenant, maintenez la touche CTRL enfoncée et sélectionnez deux versions> "Comparer les unes avec les autres"
Cela fonctionnera également pour les balises . (Supprimez le "uniq" ci-dessous et les autres parties si vous avez besoin de voir toutes les modifications)
git diff v1.58 HEAD
Ci-dessous, le même, qui pourrait être utile pour CI pour les microservices dans monorepo
git diff v1.58 HEAD --name-only | sort -u | awk 'BEGIN {FS="/"} {print $1}' | uniq
<Folder Name>
(credit - https://dzone.com/articles/build-test-and-deploy-apps-independently-from-a-mo )
Si la validation en haut est indiquée par HEAD, vous pouvez faire quelque chose comme ceci:
commit1 -> HEAD
commit2 -> HEAD~1
commit3 -> HEAD~2
Diff entre le 1er et le 2e commit:
git diff HEAD~1 HEAD
Diff entre le 1er et le 3ème commit:
git diff HEAD~2 HEAD
Diff entre 2ème et 3ème commit:
git diff HEAD~2 HEAD~1
etc...