#git #version
#git #версия
Вопрос:
Есть ли какая-либо команда git, которая позволяет проверить, был ли файл изменен во время последней фиксации?
Я хотел бы проверить, был ли обновлен файл, содержащий номер версии, в противном случае разработчик получит предупреждение не выпускать программное обеспечение в среду интеграции до того, как версия была увеличена.
Ответ №1:
Попробуйте это:
git diff --name-only HEAD~1 HEAD | grep somefile.txt
Предполагается, что вы хотите проверить somefile.txt
, изменился ли файл при последней фиксации. Если вы хотите проверить, был ли somefile.txt
изменен между любыми двумя фиксациями, затем используйте
git diff --name-only SHA1 SHA2 | grep somefile.txt
где SHA1
и SHA2
— хэши двух коммитов, ограничивающих разницу.
Комментарии:
1. Будьте осторожны, используя это в сценариях, так как вы можете получить ложные срабатывания. Например,
grep somefile.txt
совпаденияfoo/somefile.txt
илиsomefile.txt.gz
или четныеsomefileXtxt
.
Ответ №2:
[[ `git rev-parse @:path/to/file` = `git rev-parse @~:path/to/file` ]]
или как функция
head-changed-file () {
set -- $(git rev-parse "@:$1" "@~:$1")
[[ $1 != $2 ]]
}
и тогда вы можете head-changed-file somefile.txt amp;amp; echo okay it changed
Ответ №3:
git diff --quiet HEAD^ HEAD -- path/to/file
завершается с кодом состояния 1, если path/to/file
он был изменен или удален при последней фиксации. В противном случае код состояния равен 0.