Je veux fusionner deux branches qui ont été séparées pendant un certain temps et je voulais savoir quels fichiers ont été modifiés.
Je suis tombé sur ce lien: http://linux.yyz.us/git-howto.html qui était assez utile.
Les outils pour comparer les branches que j'ai rencontrées sont:
git diff master..branch
git log master..branch
git shortlog master..branch
Je me demandais s'il y avait quelque chose comme "git status master..branch" pour ne voir que les fichiers qui sont différents entre les deux branches.
Sans créer un nouvel outil, je pense que c'est le plus proche que vous pouvez faire maintenant (qui bien sûr affichera des répétitions si un fichier a été modifié plusieurs fois):
git diff master..branch | grep "^diff"
Je me demandais s'il y avait quelque chose qui me manquait ...
git
branch
git-branch
git-diff
johannix
la source
la source
Réponses:
Pour comparer la branche actuelle avec une
master
branche:Pour comparer deux branches:
Lisez la suite
git diff
dans la documentation officielle .la source
git diff --name-status your_branch...master
affiche les modifications qui se sont produites sur le maître depuis la création de your_branchEssayer
Cela vous donnera plus d'informations sur chaque modification, tout en utilisant le même nombre de lignes.
Vous pouvez également inverser les branches pour obtenir une image encore plus claire de la différence si vous fusionniez dans l'autre sens:
la source
config --global color.ui true
), vous pouvez ignorer --color. (J'ai lks - syndrome du clavier paresseux.)git config --global color.ui true
- pour être complet.fatal: ambiguous argument 'master..branchName': unknown revision or path not in the working tree.
Gardez également à l'esprit que git a des branchements bon marché et faciles. Si je pense qu'une fusion pourrait être problématique, je crée une branche pour la fusion. Donc si
master
j'ai les changements dansba
lesquels je veux fusionner et que ma branche a besoin du code du maître, je pourrais faire ce qui suit:Le résultat final est que j'ai pu essayer la fusion sur une branche jetable avant de visser avec ma branche. Si je m'embrouille, je peux simplement supprimer la
ba-merge
branche et recommencer.la source
master
que vous travaillez sur la révision du code et la résolution des conflits.Si quelqu'un essaie de générer un fichier diff à partir de deux branches:
la source
Il existe également une méthode basée sur l'interface graphique.
Vous pouvez utiliser gitk .
Courir:
Cliquez avec le bouton droit sur un commit d'une branche et sélectionnez Marquer ce commit dans le menu contextuel.
Ensuite, il y aura une liste de fichiers modifiés dans le panneau inférieur droit et les détails des différences dans le panneau inférieur gauche.
la source
Encore une option, en utilisant meld dans ce cas:
Cela permet non seulement de voir les différences entre les fichiers, mais fournit également un moyen facile de pointer et de cliquer sur un fichier spécifique.
la source
-d
option?Notez que git vous permet d'essayer simplement la fusion et de vous éloigner de tout problème si vous n'aimez pas le résultat. Cela pourrait être plus facile que de rechercher à l'avance les problèmes potentiels.
la source
Et si vous recherchez des changements uniquement parmi certains fichiers, alors:
branch1 est facultatif et votre branche actuelle (la branche sur laquelle vous vous trouvez) sera considérée par défaut si branch1 n'est pas fourni. par exemple:
la source
Lorsque vous travaillez en collaboration, ou sur plusieurs fonctionnalités à la fois, il est courant que l'amont ou même votre maître contienne du travail qui n'est pas inclus dans votre branche et n'apparaisse pas correctement dans les différences de base.
Si votre amont peut avoir bougé, vous devez le faire:
Le simple fait d'utiliser git diff master peut inclure ou ne pas inclure les modifications pertinentes.
la source
Si vous utilisez IntelliJ IDEA , vous pouvez également comparer n'importe quelle branche avec votre branche de travail actuelle. Voir http://www.jetbrains.com/idea/webhelp/merging-deleting-and-comparing-branches.html#d288093e3827 pour plus d'informations. Ceci est également disponible dans l' édition gratuite .
la source
Il y a deux branches disons
Étant dans la branche A, vous pouvez taper
alors cela vous donnera une sortie de
Le point important à ce sujet est
Le texte en vert est à l'intérieur présent dans la branche A
Le texte en rouge est présent dans la branche B
la source
Il y a beaucoup de réponses ici, mais je voulais ajouter quelque chose que j'utilise couramment. SI vous êtes dans l'une des branches que vous souhaitez comparer, je fais généralement l'une des actions suivantes. Pour cette réponse, nous dirons que nous sommes dans notre branche secondaire. En fonction de la vue dont vous avez besoin à l'époque dépendra de ce que vous choisissez, mais la plupart du temps j'utilise la deuxième option des deux. La première option peut être utile si vous essayez de revenir à une copie originale - de toute façon, les deux font le travail!
Cela comparera le maître à la branche dans laquelle nous sommes (qui est secondaire) et le code d'origine sera les lignes ajoutées et le nouveau code sera considéré comme les lignes supprimées
OU
Cela comparera également le maître à la branche dans laquelle nous nous trouvons (qui est secondaire) et le code d'origine sera les anciennes lignes et le nouveau code sera les nouvelles lignes
la source
Si vous utilisez Github / Github Enterprise, vous pouvez utiliser l'interface utilisateur Web en appuyant sur l'URL
/compare
de votre chemin de référentiel, par exemple, https://github.com/http4s/http4s/compare . Vous pouvez sélectionner la branche / commit / tag que vous souhaitez comparer:Et le diff sera présenté dans l'interface github à l'url
/compare/{x1}...{x2}
où sontx2
etx1
sont la branche / commit / tag que vous souhaitez comparer, par exemple: https://github.com/http4s/http4s/compare/release-0.18.x ...MaîtreVous pouvez en voir plus dans le Github Doc .
la source
Pour les personnes qui recherchent une solution GUI, Git Cola a un très joli "Branch Diff Viewer ( Diff -> Branches .. ).
la source
si
revision_n
etrevision_m
sont des validations successives, il génère la même chose quegit show revision_m
la source
Vous pouvez également utiliser un diff visuel .
Par exemple, si vous utilisez Sourcetree , vous pouvez simplement sélectionner deux validations dans la vue du journal .
(Personnellement, je préfère utiliser une interface graphique dans la plupart des cas pour cela, et je publie ceci pour ceux qui ne connaissent peut-être pas les options de l'interface graphique.)
la source
Si vous aimez l'interface graphique et utilisez Windows, voici un moyen simple.
la source
Vous pouvez également comparer facilement les branches des fichiers modifiés en utilisant par exemple TortoiseGit . Cliquez simplement sur Parcourir les références et choisissez les branches que vous souhaitez comparer.
Par exemple, si vous comparez votre branche avec master, vous obtiendrez comme résultat une liste de fichiers qui seront modifiés dans master si vous décidez de fusionner votre branche en master .
Rappelez-vous que vous obtiendrez un résultat différent si vous comparez master avec votre branche et votre branche avec master .
la source