No comprendo bien cual es el problema,
Segun lo q entiendo queres compartir algunos commits del repo privado al publico, y otros no, y por eso terminas haciendo cherry-pick de cada commit que queres compartir ?
Lo que yo recomendaria es tratar de separar en branches lo que van a compartir publico y privado, o separar en
submodules si son subdirectorios. Tambien seria ideal si pueden separar a una gema o algo la funcionalidad que quieren publicar, y mantener en el app rails/otras gemas lo que quieren mantener privado
Como una alternativa para que sea menos tedioso el cherry-picking, se puede usar rebase para mover los commits en secuencias (si son 15 commits seguidos, en lugar de hacer 15 cherry-picks, hace un rebase), aunque lo otro que dije antes me parece mas practico