Je suis sur la branche X et j'ai ajouté quelques commits supplémentaires. Je veux voir toutes les différences entre MASTER et la branche sur laquelle je suis en termes de commits. Je pourrais juste faire un
git checkout master
git log
puis un
git checkout branch-X
git log
et diff visuellement ceux-ci, mais j'espère une méthode plus facile et moins sujette aux erreurs.
Réponses:
Vous pouvez obtenir une sortie visuelle très agréable de la façon dont vos branches diffèrent avec ceci
la source
git log --oneline --graph --all --decorate --abbrev-commit
vous donnera une sortie similaire dans une commande plus courte / plus lisiblegit log --all --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset'
git log --oneline --graph --all --decorate
est suffisant,--abbrev-commit
n'est pas requis,--oneline
est l'abréviation de--pretty=oneline --abbrev-commit
Vous pouvez facilement le faire avec
Cela vous montrera que la branche X a un commit mais pas le master.
la source
branch-X
vous pouvez utilisergit log master..
git log master...branch-X
(trois points au lieu de deux). Voirman gitrevisions
pour plus d'informations.Je pense que c'est une question de choix et de contexte. Je préfère utiliser
Il affichera les validations dans develop qui ne sont pas dans la branche master.
Si vous voulez voir quels fichiers sont réellement modifiés, utilisez
Si vous ne spécifiez pas d'arguments, il affichera le diff complet. Si vous voulez voir des différences visuelles, installez
meld
sur Linux ouWinMerge
sur Windows. Assurez-vous que ce sont les outils diff par défaut. Ensuite, utilisez quelque chose commeDans le cas où vous souhaitez le comparer avec la branche actuelle. Il est plus pratique d'utiliser HEAD au lieu du nom de branche comme use:
Il vous montrera tous les commits, sur le point d'être fusionnés
la source
--no-merges
git log origin/master..HEAD --oneline --no-merges
Si vous êtes sous Linux,
gitg
c'est le chemin à parcourir pour le faire très rapidement et graphiquement.Si vous insistez sur la ligne de commande, vous pouvez utiliser:
Pour rendre
git log
plus agréable par défaut, je règle généralement ces préférences globales:la source
Je suggère ce qui suit pour voir la différence "dans les commits". Pour une différence symétrique, répétez la commande avec des arguments inversés:
la source
si vous souhaitez utiliser gitk:
il a une belle GUI old school
la source
Pas la réponse parfaite mais fonctionne mieux pour les personnes utilisant Github:
Accédez à votre repo:
Insights -> Network
la source
Si vous souhaitez comparer en fonction des messages de validation, vous pouvez effectuer les opérations suivantes:
la source
--oneline
et de la tuyauterie,cut
vous pouvez utilisergit log --format='%s'
Contribuer à cela car il permet de différer visuellement les journaux a et b, côte à côte, si vous avez un outil de diff visuel. Remplacez la commande diff à la fin par la commande pour démarrer l'outil de diff visuel.
la source
J'ai utilisé certaines des réponses et trouvé celle qui correspond à mon cas (assurez-vous que toutes les tâches sont dans la branche de publication).
D'autres méthodes fonctionnent également mais j'ai trouvé qu'elles pourraient ajouter des lignes dont je n'ai pas besoin, comme les commits de fusion qui n'ajoutent aucune valeur.
ou vous pouvez comparer votre courant avec le maître
git fetch
est là pour vous assurer que vous utilisez les informations mises à jour.De cette façon, chaque commit sera sur une ligne et vous pouvez copier / coller cela dans un éditeur de texte et commencer à comparer les tâches avec les commits qui seront fusionnés.
la source