Я хочу сравнить две версии файла (которые существуют на разных путях) при разных коммитах в git. Я не хочу diff, я просто хочу знать, совпадают ли содержимое и режимы. Документация для diff-файлов не указывает никакого значения для возвращаемых значений. Я не вижу ничего похожего на cmp (1) в git. Есть ли другой инструмент для сантехники, чтобы сделать это, или у diff-файлов есть возвращаемые значения, которые выражают это?Как программно сравнивать файлы с двумя версиями в git?
0
A
ответ
0
git ls-tree <commit> -- <path>
выходы
<mode> SP <type> SP <object> TAB <file>
<mode>
- это файловый режим. <object>
- это sha1, который указывает содержимое.
Сравните режимы и объекты.
<object>
здесь можно назвать по-другому
<commit>:<path>
Так git rev-parse <commit>:<path>
может выводить sha1 из сгустка или дерева. Сравнивая два sha1, мы можем видеть, совпадают ли они или нет.
3
git diff --exit-code <commit> <commit>
Я считаю, что вы ищете. Его почти до дна в Документах https://git-scm.com/docs/git-diff
Или
git diff --quiet <commit> <commit>
Если чисто заинтересованы в коде выхода, и ничего более (без вывода консоли)
Я полагаю, что если файлы одинаковы, они должны быть одинаковыми. Включает ли режим blob режим? –