Problemas con la fusión después de un índice de actualización git –assume-unchanged

Mi compañero de trabajo me ha preguntado si podría importar un file después de haberlo cometido, como un ejemplo de un file pom.xml, comúnmente usado en proyectos maven.

Descubrí que el índice de actualización de git –assume-unchanged puede ser útil en esta situación. Pero cuando trato de fusionarme desde otra twig, git sigue rastreando el file ignorado y ocurre un conflicto.

¿Qué debo hacer para evitar esto? ¿Debería usar este command (git update-index assume-unchanged) en todas las twigs?

El command git update-index --assume-unchanged filename no se puede usar en dos twigs, es una forma de ignorar temporalmente un file por un time. Cuando modifique el file, y luego desee cambiar o fusionarse a otras twigs, git mostrará un post de error porque usted ha desintegrado los cambios, lo que significa que debe usar git update-index --no-assume-unchanged filename before cambiar o fusionar sucursal.

Para su situación, puede referirse a continuación de dos maneras:

  1. El file ya no necesita hacer control de versiones . Entonces puede agregar el file en .gitignore y usar git rm --cached filename para destrabarlo.
  2. Necesita hacer control de versiones para el file . Cuando fusiona una sucursal, puede usar git merge branchname -X ours/theirs para hacer que el file no tenga ningún efecto.

Como comenté – --assume-unchanged no es la herramienta adecuada para este trabajo

De acuerdo con la documentation de Git, la mejor manera de hacerlo es usar git rm --cached <file> ;

Otra cosa útil que puede hacer es mantener el file en su tree de trabajo pero eliminarlo de su área de ensayo. En otras palabras, es posible que desee mantener el file en su disco duro pero que Git no lo rastree más. Esto es particularmente útil si olvidó agregar algo a su file .gitignore y accidentalmente lo organizó, como un file de logging grande o un grupo de files comstackdos. Para hacer esto, use la opción --cached

Entonces necesitaría agregar el file ahora sin .gitignore a su file .gitignore .

En el caso de las sucursales, deberá gestionar la fusión de las sucursales que realizan el seguimiento de este file para asegurarse de que no vuelva a ingresar al repository. La forma más fácil sería realizar esta alteración en cada twig antes de fusionarla.

Descubrí el índice de actualización git –assume-unchanged

Esto le dice a git que no compare el file en el directory de trabajo con el estado actual del repository.

La fusión, por otro lado, ocurre entre commits en el repository. por lo tanto, usted todavía tiene conflictos si su fusión con alguien más cambia en el mismo file.


Su ejemplo de por qué necesita esa característica es el file de configuration de proyecto de mavens.

Me parece que especialmente este file no debe ignorarse o excluirse de la scm. Entonces, ¿por qué lo necesitas?

Supongo que tiene properties definidas en su pom que apuntan a los resources locales. Si es así: mueve esas properties a settings.xml en "user.home"/.m2 . Aquí es donde pertenecen.