tipos tag repositorio qué log existen etiquetas crear git workflow git-merge

tag - flujo de trabajo de git: ¿Puedo evitar que un determinado archivo se fusione con otra rama pero aún así mantenerlo bajo el control de versiones?



git push tag (2)

Ankur, intente esto:

Suponiendo que esté en la sucursal en vivo, ejecute:

git merge --no-commit --no-ff stage

Esto fusionará las dos ramas, pero en lugar de hacer un nuevo compromiso, fallará y dejará estos cambios en su archivo de índice y directorio de trabajo. Ahora, ya que desea mantener su archivo .htaccess intacto en la rama en vivo, puede verificar este archivo desde el momento:

git checkout live .htaccess

Ahora su árbol de trabajo tiene todos los cambios desde el escenario con la excepción de .htaccess , y así puede finalizar el compromiso de fusión:

git commit -m "Pulled changes from stage" -a

Tengo un repositorio con dos ramas: vivo y escenario. El repositorio contiene código para una aplicación basada en web. Me gustaría mantener dos archivos .htaccess diferentes para el escenario y las sucursales en vivo, pero aún así mantenerlos controlados por versión, ya que la naturaleza de servir un sitio de escenario es un poco diferente (ahora, por ejemplo, quiero que los cachés sean cronometrados diferentemente).

Soy un principiante con git, así que probablemente haya una explicación fácil, pero me gustaría tener un flujo de trabajo en el que, cuando estuve en vivo y realicé cambios ( git merge stage simple de git merge stage ), no sobrescribí el .htaccess existente. en la rama viva. ¿Hay alguna forma de configurar esto? ¿Me estoy perdiendo algún gran concepto en git?

Del mismo modo, también hay una parte de un archivo .html (pero posiblemente muchos) en el que me gustaría hacer un seguimiento de los cambios, pero no volver a fusionarlos en vivo. Solo para ser claros, quiero que Live y Stage se mantengan al tanto de los cambios en estos archivos, pero sé que no se deben combinar esos ciertos cambios cuando se hacen combinaciones.


Encontré una respuesta en otra pregunta sobre , el crédito es para fcurella:

Digamos que quiere excluir el archivo config.php

En la rama A:

  1. Cree un archivo llamado .gitattributes en el mismo directorio, con esta línea: config.php merge=ours . Esto le dice a git qué estrategia usar cuando se fusiona el archivo. En este caso siempre mantendrá su versión, es decir. la versión de la rama en la que se está fusionando.

  2. Agregue el archivo .gitattributes y .gitattributes

En la rama B: repita los pasos 1-2

Intenta fusionarte ahora. Su archivo debe permanecer intacto.

Esto parece una solución más escalable.