Ответы:
Укажите путь (в данном случае myfolder) и просто запустите:
git diff myfolder/
git diff -- myfolderдля минимизации двусмысленности git. Общая нотация для git diff (и многих команд git) заключается в том, что для git diff [commit-ish] -- [path]фиксации по умолчанию используется значение HEAD (где вы сейчас находитесь), а по [path]умолчанию - корневой каталог git, но может быть любым, относящимся к вашему текущему каталогу. Без него --git угадает, что вы имеете в виду, [commit-ish]или [path]. В некоторых случаях это приводит к тому, что git называет обозначение «неоднозначным». Если я правильно помню.
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 - это то, что вам нужно изменить в рассматриваемые каталоги.
Добавьте Beyond Compare в качестве инструмента сравнения в Git и добавьте псевдоним для diffdir как:
git config --global alias.diffdir = "difftool --dir-diff --tool=bc3 --no-prompt"
Получите gitdiff как:
git diffdir 4bc7ba80edf6 7f566710c7
Ссылка: Сравните целые каталоги с git difftool + Beyond Compare
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 (третий квартал 2020 г.) команды семейства " diff" научились diff.relativeучитывать переменную конфигурации " ".
См. Коммит c28ded8 (22 мая 2020 г.) Лорана Арно ( spk) .
(Объединено Junio C Hamano - gitster- в коммите e34df9a , 02 июня 2020 г.)
diff: добавить параметр конфигурацииrelativeПодписано: Лоран Арну.
Подтверждено: 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 в качестве инструмента для сравнения каталогов, не забудьте включить следующие символические ссылки:
В представлении сравнения папок → Правила (значок рефери):
А затем включите переход по символическим ссылкам и обновите настройки сеанса по умолчанию:
ИЛИ,
настройте псевдоним так:
git config --global alias.diffdir "difftool --dir-diff --tool=bc3 --no-prompt --no-symlinks"
Обратите внимание, что в любом случае любые изменения, сделанные сбоку (слева или справа), которые относятся к текущему рабочему дереву, сохраняются.
git diff master..yourbranch path/to/folder