2

Есть ли способ легко зафиксировать файл в git, если он обновился?

Я хочу взять список файлов в каталоге, записать его в текстовый файл и зафиксировать его в git, если он изменился. Я предполагаю, что для этого потребуется сценарий оболочки, который создает список, затем запускает git add [file] затем git commit -m "Updating" но я хочу убедиться, что он не сломается, если я выполню его в сценарии cron.

Спасибо!

2 ответа2

3

Вы можете просто добавить все файлы, которые были обновлены с

git add -u <filepattern>

Смотрите руководство:

<filepattern> с уже отслеженными файлами в индексе, а не с рабочим деревом. Это означает, что он никогда не будет ставить новые файлы, а будет модифицировать новое содержимое отслеживаемых файлов и будет удалять файлы из индекса, если соответствующие файлы в рабочем дереве были удалены.

Если <filepattern> не указан, по умолчанию используется значение «.»; другими словами, обновите все отслеживаемые файлы в текущем каталоге и его подкаталогах.

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

Тогда это просто вопрос принятия этих изменений, как вы предложили.

1

Это решение применяется, если проблема заключается в том, чтобы всегда добавлять этот единственный файл, даже если вы хотите добавить другие файлы вручную:

Есть крючки. Например, вы можете сделать сценарий в каталоге .git/hooks и дать ему имя pre-commit (не забудьте сделать его исполняемым). В этот файл вы можете добавить что-то вроде git add -u $GIT_WORK_TREE/filename . Это всегда добавит этот файл автоматически при фиксации изменений.

Часть $GIT_WORK_TREE относится к месту хранения ваших файлов.

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