Я пытаюсь написать оболочку script, которая делает следующее:
- Проверяет удаленный репозиторий git на любые изменения.
- Если изменения в удаленном репозитории git вызывают эти изменения.
- Прокручивает файлы, которые являются новыми или были изменены.
В ходе моих исследований я нашел некоторые необходимые команды для выполнения этих задач, но мне не удалось заставить их работать вместе в оболочке script.
Вот script с некоторыми из команд, которые у меня есть:
#!/bin/sh
#Check if there are any changed files
git --git-dir="/dir/.git" fetch origin
if git --git-dir="/dir/.git" log HEAD..origin/master --oneline
then
#Output the modified files from the last pull
git --git-dir="/dir/.git" diff --name-status ORIG_HEAD..
fi
То, что мне не удалось получить с командами в этом script, это:
- Оператор if, проверяющий, есть ли изменения или не всегда, является истинным. Я пробовал, если инструкции с другими командами git, и они также всегда верны. Кажется, что git не работает, как обычные команды оболочки, где вы получаете ответ 0 или 1. Как я могу получить команду git, подобную той или иной команде git, чтобы возвращать правильные ответы в инструкции if?
- Как я могу назначить переменные, выводимые из команды, чтобы увидеть измененные файлы в массиве, чтобы я мог их прокручивать, используя для?
Если команды в моем script не будут работать в этом случае, что лучший способ сделать это?
Изменить: извините, если я прокрутил измененные файлы, мне нужно вытащить изменения из удаленного репозитория, прежде чем прокручивать файлы, чтобы при работе с этими файлами у меня были последние изменения.