/ / Diff entre deux patchs - git, diff, git-flow

Diff entre deux patches - git, diff, git-flow

Supposons que je possède une branche de développement et que je travaille danscertaines branches, où j’ai un ou plusieurs commits, j’amendais constamment les modifications et les rebaisonnais avec d’autres branches (pour garder l’historique des commits vierge pour l’avenir). A chaque étape, je diffs localement par rapport au développement. Donc, j'ai un ensemble de diffs et je veux voir la différence entre eux. Comment puis-je faire cela facilement? Quel type de séquence de commande git puis-je utiliser?

Mettre à jour

La solution consiste à avoir deux différences liées à ladévelopper. Avoir la copie du référentiel en développement, appliquer en premier diff. Avoir copie d'anthère et appliquer un autre correctif. Utilisez un outil de comparaison et comparez deux référentiels. Ce serait le résultat que j'attends. Le problème avec cette approche est que je dois avoir au moins deux copies du référentiel et utiliser un outil pour créer un diff de répertoires. Une autre approche, probablement meilleure, consiste à utiliser deux branches, à appliquer des correctifs et à valider des modifications, puis à comparer des branches. La question: y a-t-il quelque chose de plus simple dans les commandes git pour le faire? Quelque chose comme prendre cette branche, et deux fichiers diff, me retourne diff?

Réponses:

1 pour la réponse № 1

Votre deuxième flux de travail est la réponse. Voici un alias possible:

diffdiff = !git stash save -u -q &&
git apply $1 && git add -A && git commit -q -m"1" &&
git reset --hard HEAD@{1} -q &&
git apply $2 && git add -A && git commit -q -m"2" &&
git reset --hard HEAD@{1} -q && git stash pop -q &&
git diff HEAD@{3} HEAD@{1} && :

Appelez-le sur la branche où vous souhaitez appliquer les diff avec des fichiers diff situés en dehors du référentiel.

git diffdiff <diff_file_1> <diff_file_2>

Pas une solution multiplateforme, testée sur osx, aveccoquilles zsh et bash. Si vous êtes d'accord pour le faire manuellement, c'est un peu plus simple, la plus grande complication ici est de fournir une solution à toute épreuve. La première ligne de sortie est également du bruit, il semble que git stash pop n’obéisse pas au paramètre --quiet.

(Edit: Il n'y a pas besoin de la branche temporaire, j'ai donc simplifié l'alias.)