¿Cómo compartir un file entre dos repositorys usando Git y Bitbucket?

Estoy construyendo una aplicación web que tiene dos componentes separados: el front-end que se ejecuta en el browser del usuario (Javascript + Angular) y un REST API de background (Python / Django) que se ejecuta en mi server y alimenta datos a todos los frontales. Las dos partes de esta aplicación se colocan en dos repositorys Git separados y se almacenan en BitBucket.

El front-end muestra los datos al usuario y gana una interfaz hermosa que tiene muchos CSS agradables definidos. El back-end envía correos electrónicos a los usuarios.

Me gustaría que el aspecto de los correos electrónicos coincida exactamente con la pantalla del front-end. Toda la interacción del usuario debe tener una presentación uniforme. Entonces, ¿dónde / cómo debería poner el CSS de modo que esté disponible en ambos repositorys, pero solo tengo que hacer cambios en un lugar?

¿Cómo hago esto con las herramientas que estoy usando: Git & Bitbucket?

Creo que el CSS debería estar en un "tercer" proyecto por separado.

Especialmente dado que es posible que desee reutilizar el buen CSS para otro proyecto o dividir los proyectos existentes en más repositorys.

Entonces la estrategia es:

  1. Crear un tercer repository, por ejemplo, project_css
  2. En ambos proyectos actuales, agregue references a ese repository usando git subtree git submodule o git submodule .

Por ejemplo, si prefiere que el git subtree tenga los files del tercer proyecto como parte de cada uno de los dos proyectos existentes, puede seguir un blog / tutorial como este:

https://developer.atlassian.com/blog/2015/05/the-power-of-git-subtree/

Ya sea que use el git subtree o el git submodule , eso depende de las concesiones con las que está de acuerdo.

escriba una secuencia de commands en el gancho de precompilation de git; si se modifica el file css, la secuencia de commands podría enviar el cambio a BitBucket. Ver

 git help githooks 

Puede fusionar los dos repositorys en uno, agregando un segundo repository remoto.

Es más fácil de mantener.

Elija uno de sus repositorys, llamémoslo repo1 . El primer paso es agregar en repo1 un segundo repository remoto, llamado repo2 . Ese es tu segundo proyecto. Luego repo2 las twigs de repo2 en su repo1 . Todas las sucursales se sentarán "felizmente" juntas en un repository.

El siguiente paso es fusionar las líneas principales de los dos proyectos en una sola. Esto funcionará sin problemas si las carpetas y los files no "chocan" entre sí. Es posible que deba cambiar el nombre de ciertas carpetas antes de hacer eso.

Ahora ambos proyectos están juntos y pueden compartir los files CCS. Después, puede ignorar repo2 .

Toda la operación se realiza en su repository local. Cuando termine, envíe todo a un server central como BitBucket.

El concepto es que un repository git es solo una "casa" para sucursales. Y está bien si esas twigs no comparten un ancestro común. Hemos utilizado este método para networkingucir el número de repositorys de proyectos que funcionan muy juntos.