Стоит ли также вообще коммитить генерируемый код или он должен генерироваться с помощью какого-то скрипта во время ci/cd?
Зависит от твоего языка и как он работает с grpc.
Например в C# и Rust файлы генерятся во время сборки и их можно не коммитить. (В случае C# ты их и не сможешь закоммитить)
Предположим, что клиент и сервер находятся в разных репозиториях, это значит, что один и тот же proto файл должен находиться в обоих репозиториях? Или вообще в каком-то третьем?
В таком случае лучше сделать третий репозиторий и включить его через git submodules в клиент и сервер.
У нас маленькая компания и grpc не используется. Я хочу ввести в практику его использование
А зачем? Какую проблему так хочется решить?
На ком ответственность, если экспертизой по grpc обладаешь только ты один?
А если у тебя экспертиза не достаточная?