2

В Git, чтобы увидеть различия с предыдущим коммитом, я запускаю это:

git diff HEAD~1

Чтобы увидеть коммиты, связанные с одним file я бы запустил это:

git log --oneline file

Но если я запускаю следующее и файл, на который я хочу сослаться, не был изменен во время последнего коммита, Git ничего не показывает.

git diff HEAD~1 file

Как я могу просмотреть diff способом, похожим на HEAD но в конкретном файле, если этот файл не был зафиксирован в ссылке, на которую указывает HEAD?

1 ответ1

0

Вам придется явно ссылаться на SHA, если вы хотите увидеть различие файла, который не был изменен между последним коммитом и предыдущим (HEAD~1).

Запустите журнал, чтобы увидеть несколько SHA, которые вы хотите просмотреть.

git log --oneline <file>

Пример вывода следующий:

af46919 scraped - called local pizzeria instead
b09206c added sauce and bottle of dr pepper into list
ad90f90 knead dough and leave over night

Теперь, если вы хотите увидеть разницу изменений, внесенных в файл, вы ссылаетесь на него через второй SHA, который вы видите. В этом случае у нас есть это из примера:

git diff b09206c <file>

Вышесказанное является сокращением для

git diff b09206c HEAD <file>

Или подумайте об этом так:

git diff <start-commit-SHA> <future-commit-SHA> <file>

Чтобы запустить его как одну команду (например, для скрипта), вы можете сделать:

git log --oneline <file> |awk 'NR==2{print $1}'|xargs -I {} git diff {} <file> 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .