Réponses:
Fournissez un chemin (myfolder dans ce cas) et exécutez simplement:
git diff myfolder/
git diff -- myfolderpour minimiser l'ambiguïté de git. La notation générale pour git diff (et de nombreuses commandes git) est git diff [commit-ish] -- [path]où commit-ish prend par défaut HEAD (où vous en êtes maintenant) et par [path]défaut le répertoire racine de git, mais peut être n'importe quoi par rapport à votre répertoire actuel. Sans le --, git devinera ce que vous voulez dire, [commit-ish]ou [path]. Dans certains cas, cela amène git à dire que la notation est «ambiguë». Si je me souviens bien.
git diff master..develop myfolder/lesquelles vous essayez de faire des différences, comme @CrandellWS l'a dit dans le commentaire sur la question d'origine. Le statut Git vous montrera les modifications si c'est ce que vous recherchez.
Si vous comparez différentes branches, vous devez utiliser --pour séparer une révision Git d'un chemin de système de fichiers. Par exemple, avec deux succursales locales masteret bryan-working:
$ git diff master -- AFolderOfCode/ bryan-working -- AFolderOfCode/
Ou d'une succursale locale à une télécommande:
$ git diff master -- AFolderOfCode/ origin/master -- AFolderOfCode/
Vous devriez prendre l'habitude de consulter la documentation pour des trucs comme ça. C'est très utile et améliorera vos compétences très rapidement. Voici la partie pertinente lorsque vous faitesgit help diff
git diff [options] [--no-index] [--] <path> <path>
Les deux <path>sont ce dont vous avez besoin pour changer les répertoires en question.
Ajoutez Beyond Compare comme outil de difftool dans Git et ajoutez un alias pour diffdir comme:
git config --global alias.diffdir = "difftool --dir-diff --tool=bc3 --no-prompt"
Obtenez le gitdiff comme:
git diffdir 4bc7ba80edf6 7f566710c7
Référence: Comparez des répertoires entiers avec difftool + Beyond Compare
git config --global alias.diffdir = "difftool --dir-diff --tool=bc3 --no-prompt"place
--no-symlinksoption pour que la commande se litgit difftool --dir-diff --no-symlinks
Non seulement vous pouvez ajouter un chemin, mais vous pouvez ajouter git diff --relativepour obtenir un résultat relatif à ce dossier.
git -C a/folder diff --relative
Et avec Git 2.28 (Q3 2020), les commandes de la difffamille " " ont appris à respecter la diff.relativevariable de configuration " ".
Voir commit c28ded8 (22 mai 2020) de Laurent Arnoud ( spk) .
(Fusionné par Junio C Hamano - gitster- dans commit e34df9a , 02 juin 2020)
diff: ajouter une option de configurationrelativeSigné par: Laurent Arnoud
Reconnu par: Đoàn Trần Công DanhL'
diff.relativeoption booléenne définie surtrueaffiche uniquement les changements dans le répertoire courant / la valeur spécifiée par l'pathargument de l'relativeoption et affiche les chemins relatifs au répertoire susmentionné.Apprenez
--no-relativeà remplacer plus tôt--relativeAjouter pour la documentation des options git-format-patch (1)
--relativeet--no-relative
La documentation comprend désormais :
diff.relative:S'il est défini sur «
true», «git diff» n'affiche pas les modifications en dehors du répertoire et affiche les noms de chemin relatifs au répertoire courant.
Si vous souhaitez exclure les sous-répertoires, vous pouvez utiliser
git diff <ref1>..<ref2> -- $(git diff <ref1>..<ref2> --name-only | grep -v /)
Pour utiliser Beyond Compare comme outil de comparaison pour les différences de répertoires, n'oubliez pas d'activer les liens symboliques comme suit:
Dans une vue de comparaison de dossier → Règles (icône d'arbitre):
Et puis, activez les liens symboliques suivants et mettez à jour les paramètres de session par défaut:
OU,
configurez l'alias comme ceci:
git config --global alias.diffdir "difftool --dir-diff --tool=bc3 --no-prompt --no-symlinks"
Notez que dans les deux cas, toutes les modifications apportées au côté (gauche ou droit) faisant référence à l'arbre de travail actuel sont conservées.
git diff master..yourbranch path/to/folder