Відповіді:
Вкажіть шлях (папка в цьому випадку) і просто запустіть:
git diff myfolder/
git diff -- myfolderщоб мінімізувати неоднозначність до git. Загальне позначення для git diff (і багатьох команд git) - це те, git diff [commit-ish] -- [path]де виконувати за замовчуванням HEAD (там, де ви зараз перебуваєте), а [path]за замовчуванням - кореневий каталог git, але може бути будь-яким відносно вашого поточного каталогу. Без цього --, git здогадається, що ви маєте на увазі, [commit-ish]або [path]. У деяких випадках це призводить до того, що поняття "неоднозначне". Якщо я правильно пам’ятаю.
git diff master..develop myfolder/як @CrandellWS сказав у коментарі до оригінального питання. Статус Git покаже вам зміни, якщо це те, що ви шукаєте.
Якщо ви порівнюєте різні гілки, вам потрібно використовувати --для відокремлення версії Git від шляху до файлової системи. Наприклад, з двома місцевими відділеннями masterта bryan-working:
$ git diff master -- AFolderOfCode/ bryan-working -- AFolderOfCode/
Або від місцевого відділення до віддаленого:
$ git diff master -- AFolderOfCode/ origin/master -- AFolderOfCode/
Слід звикати дивитись документацію на подібні речі. Це дуже корисно і дуже швидко покращить вашу майстерність. Ось відповідний біт, коли ви це робитеgit help diff
git diff [options] [--no-index] [--] <path> <path>
Два <path>s - це те, що вам потрібно змінити у відповідних каталогах.
Додайте "Більше порівняння", як ваш difftool в Git, і додайте псевдонім для diffdir як:
git config --global alias.diffdir = "difftool --dir-diff --tool=bc3 --no-prompt"
Отримайте gitdiff так:
git diffdir 4bc7ba80edf6 7f566710c7
Довідка: Порівняйте цілі каталоги з git difftool + Beyond Порівняти
git config --global alias.diffdir = "difftool --dir-diff --tool=bc3 --no-prompt"натомість
--no-symlinksпараметр, щоб команда читалаgit difftool --dir-diff --no-symlinks
Ви можете не тільки додати шлях, але й додати git diff --relativeрезультат відносно цієї папки.
git -C a/folder diff --relative
І з Git 2.28 (Q3 2020) команди в сім'ї " diff" навчилися шанувати " diff.relative" змінну конфігурації.
Див. Команду c28ded8 (22 травня 2020 р.) Лоран Арнуд ( spk) .
(Об’єднав Хуніо С Хамано - gitster- в комісії e34df9a , 02 червня 2020 р.)
diff: додати параметр configrelativeВийшов із реєстрації: Лоран Арнуд
Акціоніст: Đoàn Trần Công Danh
diff.relativeЛогічний набір опціїtrueпоказує зміни тільки в поточній директорії / значенні , зазначеному вpathаргументіrelativeопції і шоу імен шляхів щодо вищезгаданого каталогу.Навчіть
--no-relativeпереосмислювати раніше--relativeДодати для документації з параметрами git-format-patch (1)
--relativeта--no-relative
Документація в даний час включає в себе :
diff.relative:Якщо встановлено значення "
true", "git diff" не відображає змін за межами каталогу та не показує імена шляхів відносно поточного каталогу.
Якщо ви хочете виключити підкаталоги, ви можете використовувати
git diff <ref1>..<ref2> -- $(git diff <ref1>..<ref2> --name-only | grep -v /)
Щоб використовувати Beyond Compare як difftool для каталогу diff, не забудьте включити наступні символьні посилання так:
У папці Порівняння подання → Правила (Ікона судді):
А потім увімкніть наступні символічні посилання та оновіть параметри сеансу:
АБО,
налаштувати псевдонім так:
git config --global alias.diffdir "difftool --dir-diff --tool=bc3 --no-prompt --no-symlinks"
Зауважте, що в будь-якому випадку будь-які зміни, внесені в бік (зліва чи справа), що стосується поточного робочого дерева, зберігаються.
git diff master..yourbranch path/to/folder