2011-02-16 8 views
17

Un archivo .gitignore permite ignorar archivos de la versión que los controla.git: ignorar un archivo que * es * versión controlada

Tenemos una situación diferente: queremos colocar en el repositorio algunos archivos de configuración, que deben modificarse por equipo (por ejemplo, información de acceso a db).

Queremos distribuirlos, como marcadores de posición, así que los incluimos en el repositorio. Sin embargo, más adelante deseamos que cualquier cambio en ellos sea ignorado, para todos los desarrolladores.

¿Hay alguna manera de hacerlo?

Nota:

La pregunta Git: Ignoring Version-Controlled Files es en realidad el mismo. Sin embargo, ninguna de las respuestas respondió a la pregunta, incluida la aceptada.

Editar:

  • ¿Hay una manera de hacer --assume-sin cambios a un patrón en lugar de un solo archivo?
  • ¿Hay alguna forma de propagar este comando a los repositorios de otros desarrolladores?
+1

posible duplicado de [Impedir cambios locales para obtener insertado en Git] (http://stackoverflow.com/questions/2173726/prevent-local-changes-to-get-pushed-in-git) –

+0

http: // stackoverflow.com/questions/4743770/gcollaboration-how-to-manage-configuration-files, http://stackoverflow.com/questions/1396617/git-committing-machine-specific-configuration-files – wnoise

+0

Posible duplicado de probablemente todos estos: http://stackoverflow.com/search?q=[git]+%2Bassume-unchanged – Cascabel

Respuesta

3

Sé que este tipo de elude el problema, pero me gustaría tener un archivo ".defaults" para cada uno, y luego cambiar esto. De todos modos, esto ayuda con la energía de configuración. ¿Qué sucede si alguien que tiene una configuración personalizada desea cambiar los valores predeterminados?

No ignore los .defaults, ignore la cosa real. Tal vez tenga un script que copie los valores predeterminados a los normales si no existen.

46

que definen los siguientes alias en mi archivo .gitconfig:

[alias] 
    ignore = update-index --assume-unchanged 
    unignore = update-index --no-assume-unchanged 

Eso debería hacer exactamente lo que quiere: correr git ignore some-file tratará el archivo como sin cambios, no importa lo que haces a ella, hasta que se ejecute git unignore some-file.

+0

¿No hay forma de ignorar directorios completos? – keiki

+0

Ver http://stackoverflow.com/questions/12288212/git-update-index-assume-unchanged-on-directory: 'git ls-files -z ruta/a/directorio | xargs -0 git ignora' – maff

Cuestiones relacionadas