¿Cómo confirmo código en vivo usando GIT?

Nuestra carpeta / tree repo contiene la siguiente carpeta / files dentro de:

  • db / -> aquí es donde almacenamos nuestro db.sql
  • src / -> aquí es donde almacenamos nuestros Drupal Site Files
  • settings_.cmd -> file que contiene nombre de usuario DB y passwords, etc.
  • setup.cmd -> file que implementa la database en localhost.

enter image description here

De acuerdo, entonces cuando implemente el sitio drupal en nuestra count de cPanel, hago esto:

cd / inicio / nombre de count / public_html /

  • git init
  • git remote add -f name URL
  • git config core.sparsecheckout true
  • echo db / >> .git / info / sparse-checkout
  • echo src / >>. git / info / sparse-checkout
  • git pull nombre cabeza

Una vez que he ejecutado esos commands, termino teniendo lo siguiente en / home / accountname / public_html /

  • .git
  • db /
  • src /

Entonces yo:

  • cd src /
  • mv * ../
  • rm -r src /

y ejecutar mysql -h 127.0.0.1 -D DBname -uDBuser -p'DBpass '<db / db.sql Para implementar mi database


Hecho ahora, mi sitio se ejecuta al 100% después de realizar algunos cambios en el sitio, mientras que en vivo me gustaría enviar esos cambios al repository, esto es lo que hago:

  • cd public_html /
  • git add –todo
  • git commit -m "sometext"
  • git push

Cuando retiro el repository localmente, provoca que el repository se "rompa" y mi tree repo ahora solo muestra el contenido que estaba dentro del src / Así que borró el tree que solía tener este aspecto:

  • db /
  • src /
  • settings_.cmd
  • setup.cmd

y ahora se ve así:

enter image description here

Todo lo que quiero que haga es:

cuando confirmo el código en vivo al repository, solo quiero que actualice las carpetas src / y db /. De modo que cuando retire mi repository localmente, actualizará las carpetas src / y db / y nada más.

En la computadora de desarrollo (repository original)

Dividir la carpeta Dev/src & Dev/db y convertirlos en un repository git independiente. Entonces ese repository original los toma como un submodule.

  1. cd al repository Dev git
  2. Utilice subtree para dividir los cambios / confirmaciones de la carpeta src git subtree split -P src -b src_branch
  3. Crea un repository vacío llamado src.git alguna parte
  4. Empuje src_branch a src.git
  5. Utilice subtree para dividir los cambios / confirmaciones de la carpeta db git subtree split -P db -b db_branch
  6. Crea un repository desnudo llamado db.git alguna parte
  7. Empujar db_branch al repository desnudo db
  8. Eliminar carpeta src
  9. Agregue src.git como submodule a la carpeta src
  10. Eliminar carpeta db
  11. Agregue db.git como submodule a la carpeta db

El resultado:

enter image description here

enter image description here

En la computadora Live Code (public_html)

  1. clone src.git en la carpeta de accountname y src.git un nombre public_html
  2. clonar db.git a la carpeta del accountname/public_html

El resultado:

enter image description here

Sincronización desde el código de Live

  1. commit en accountname/public_html/db y push
    enter image description here
  2. commit en accountname/public_html y push
    enter image description here

Sincronización con el desarrollo

  1. tire de la carpeta / submodule Dev/db
    enter image description here
  2. tire de la carpeta / submodule Dev/src
    enter image description here
  3. comprometerse para el cambio de submodules en Dev Repo
    enter image description here
    enter image description here