Evita que los cambios locales sean empujados en Git

He clonado un repository y la twig master en mi repository está rastreando origin/master . Creé una twig de work y cambié algunos files de configuration específicos de mi máquina de desarrollo para que la aplicación funcione.

Mi flujo de trabajo normal será cambiar a la twig master , fusionar los cambios realizados en la twig de work e push esos cambios en sentido ascendente. El problema es que no quiero que se aplasten mis cambios específicos. Cuando fusiono mi twig de work en master esos cambios también se fusionan.

La única solución que he encontrado hasta ahora es no comprometer esos cambios en el work pero esa no es una solución satisfactoria.

Si desea evitar la confirmación (por lo tanto, también) de estos files de configuration local, puede usar git update-index –assume-unchanged . Se supondrá que los files marcados con esta bandera nunca cambian (hasta que restablezca la bandera con –no-assume-unchanged)

Si los files aún no están siendo rastreados, puede agregarlos a un file .gitignore en su repository local, de lo contrario necesitará usar git update-index --assume-unchanged como dijo Mauricio.

A continuación hay más información sobre los files .gitignore:

http://git-scm.com/docs/gitignore

Una forma de resolver esto es "seleccionar cuidadosamente" cada cambio de su twig de trabajo en maestro antes de empujar hacia arriba. He utilizado una técnica en la que incluyo una palabra como NOCOMMIT en el post de confirmación solo para cambios locales, y luego uso un script de shell como este:

 #!/bin/sh BRANCH=`git branch | grep ^\\* | cut -d' ' -f2` if [ $BRANCH != "master" ]; then echo "$0: Current branch is not master" exit 1 fi git log --pretty=oneline work...master | grep -v -E '(NOCOMMIT|DEBUG):' | cut -d' ' -f1 | tac | xargs -l git cherry-pick 

Este selecciona con precisión cada cambio que no está marcado con NOCOMMIT (o DEBUG) en la twig principal.

Lo que necesita es un file .gitignore y agregue todo su file de configuration dentro del file .gitignore.

Una vez que su file .gitignore esté listo, es posible que tenga que eliminar sus files de configuration de la memory caching

Aquí está el command:

 (Assume you use linux) vi .gitignore //Add all your config file inside //run the following command to remove your config file from GIT cache if your config files is already track by GIT git rm --cached myconfig.php