Показать git diff HEAD~1 файла, который не был затронут в последних коммитах
В Git, чтобы увидеть отличия от предыдущего коммита, я запускаю это:
git diff HEAD~1
Чтобы увидеть коммиты, связанные с одним file
Я бы запустил это:
git log --oneline file
Но если я запускаю следующее и файл, на который я хочу сослаться, не был изменен во время последнего коммита, Git ничего не показывает.
git diff HEAD~1 file
Как я могу посмотреть различия в пути, похожем на HEAD
но в конкретный файл, если этот файл не был зафиксирован в ссылке, на которую указывает HEAD
?
1 ответ
Вам придется явно ссылаться на SHA, если вы хотите увидеть различие файла, который не был изменен между последним коммитом и предыдущим (HEAD~1
).
Запустите журнал, чтобы увидеть несколько SHA, которые вы хотите просмотреть.
git log --oneline <file>
Пример вывода следующий:
af46919 выскоблили - вместо этого называется местная пиццерия b09206c добавил в список соус и бутылку перца ad90f90 замесить тесто и оставить на ночь
Теперь, если вы хотите увидеть разницу изменений, внесенных в файл, вы ссылаетесь на него через второй 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>