git merge para resolver el conflicto con el fin de facilitar el cambio durante el tirón

Esta traducción de: Resolver conflictos Git fusionar una a favor de sus cambios durante un tirón

¿Cómo se resuelve un conflicto de combinación git a favor de los cambios tirados? ¿Cómo GIT se fusionan para resolver el conflicto con el fin de facilitar el cambio?

Todo el I necesidad de la opción Quitar Básicamente conflictivos Los cambios de la sin tener un árbol de trabajo para ir a través del All de un conflicto con una git mergetool. Todo el tiempo manteniendo como cambios sin conflictos Básicamente, lo que necesita para eliminar todos los cambios conflictivos del árbol de trabajo sin tener que utilizar git mergetoolla experiencia todos los conflictos, al tiempo que conserva todos los cambios sin conflictos. Preferiblemente hacer esto mientras se tira, no después . Lo mejor es hacerlo cuando se tire en, en lugar de después.


# 1 planta

: Referencia cambia durante https://stackoom.com/question/istj/ conflictos de fusión determinación con el fin de facilitar la tira de Git


Casa # 2

En La recursiva Este uso puede ser usted "suyos" en la estrategia de la Opción : Se puede utilizar la recursividad "su" política opciones :

git merge --strategy-option theirs

En el The De hombre : de los hombres :

ours
    This option forces conflicting hunks to be auto-resolved cleanly by 
    favoring our version. Changes from the other tree that do not 
    conflict with our side are reflected to the merge result.

    This should not be confused with the ours merge strategy, which does 
    not even look at what the other tree contains at all. It discards 
    everything the other tree did, declaring our history contains all that
    happened in it.

theirs
    This is opposite of ours.

Nota: Como el hombre en la página (imagen), en el "nuestro" Combinar en la Estrategia de la opción se encuentra en la muy diferente de "los suyos" combinación de Strategy . Nota: Como la página del manual, "nuestro" fusión opciones de política con "sus" fusión estrategias son muy diferentes .


Casa # 3

git pull -s recursive -X theirs <remoterepo or other repo>

O, simplemente, para el repositorio por defecto : o, simplemente, para los repositorios por defecto:

git pull -X theirs

Si ya se encuentra en estado de conflicto ... si ya está en un estado de conflicto ...

git checkout --theirs path/to/file

# 4 piso

Aceptar así, imaginar el escenario estaba acaba de llegar: Bueno, sólo imaginar lo que me encontré:

Un intento por su parte merge, o tal vez una cherry-pick, y que está detenido con su intento merge, o cherry-pick, pero se detuvo

$ git cherry-pick 1023e24
error: could not apply 1023e24... [Commit Message]
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'

Ahora, ve el archivo en conflicto y que realmente no quiere guardar los cambios. Ahora, ve el conflicto de archivos, y usted no desea conservar los cambios. En mi caso anterior, el archivo en conflicto. En sólo una nueva línea de mi IDE había añadido automático en el ejemplo anterior, los archivos en conflicto nueva línea de mi IDE añaden automáticamente. Para deshacer los cambios y aceptar sus años , la manera más fácil es: Para deshacer los cambios y aceptar los cambios, la forma más fácil es:

git checkout --theirs path/to/the/conflicted_file.php
git add path/to/the/conflicted_file.php

Lo contrario de esto (sobrescribir la versión de entrada con tu versión) es opuesto (tapa con su versión aprobada versión) se

git checkout --ours path/to/the/conflicted_file.php
git add path/to/the/conflicted_file.php

Sorprendentemente, no pude encontrar esta respuesta muy fácilmente en la red. Sorprendentemente, no puedo encontrar la respuesta en la red.


Casa # 5

Para resolver los conflictos con la versión en una rama particular: Para resolver todos los conflictos con una versión rama específica:

git diff --name-only --diff-filter=U | xargs git checkout ${branchName}

Por lo tanto, si ya se encuentra en el estado de fusión, y quiere mantener la versión principal de los archivos en conflicto: así, si ya se encuentra en la versión principal del estado combinado y desea mantener el archivo de conflictos:

git diff --name-only --diff-filter=U | xargs git checkout master

Casa # 6

Ya estás en conflicto Estado SI, y desea que el Justo a la Accept All de los suyos: Si usted ya está en un estado de conflicto, y que desea aceptar todo del estado:

git checkout --theirs .
git add .

Si desea hacer lo contrario: si desea realizar la operación inversa:

git checkout --ours .
git add .

Esto es bastante drástica, así que asegúrese de que realmente quiere borrar todo lo que fuera como esto antes de hacerlo. Es tan intensa, así que asegúrese de que realmente quiere hacer esto primero antes de todos los contenidos eliminados.

Artículos originales publicados 0 · ganado elogios 73 · vistas 550 000 +

Supongo que te gusta

Origin blog.csdn.net/w36680130/article/details/105292910
Recomendado
Clasificación