La razón por la que esto sucedió es porque lo más probable es que haya hecho lo contrario de lo que pretendía hacer.
Supongamos que su rama de trabajo se llama topic-branch
.
En vez de hacer:
$ git merge master
que podría haber hecho:
$ git checkout master
$ git merge topic-branch
En Inglés, en lugar de combinar la rama master
en topic-branch
que podría haber fusionado topic-branch
en master
.
Para entender por qué esto logra el resultado deseado podemos examinar la declaración hecha en una respuesta anterior:
Cuando intenta una fusión, todos los archivos que se pueden combinar de forma automática (por ejemplo, cuando usted don' t tiene algún cambio en su sucursal local pero que se han modificado en la sucursal de origen), se fusionan y organizan automáticamente.
El problema que está teniendo es simplemente merge
tratando de hacer su trabajo. Los archivos no se cambian en su rama de tema, pero están en la rama en la que se está fusionando.Si observa esto en la dirección opuesta a la combinación de topic-branch
en master
, el problema desaparece porque solo considera los archivos que ha modificado.
Conceptualmente, esto es lo que está haciendo merge (más here):
Deje el actual jefe se llama corriente, y la cabeza se va a combinar llamada fusión.
- Identificar el antecesor común de la corriente y fusionar. Llámalo antepasado-commit.
- Trate con los casos fáciles. Si el antepasado-commit es igual a merge, entonces no hagas nada. Si ancestro-commit es igual a current, , haga un fast forward merge.
- De lo contrario, determine los cambios entre antepasado-compromiso y fusión.
- Intenta fusionar esos cambios en los archivos actuales.
- Si no hubo conflictos, cree una nueva confirmación, con dos padres, actual y merge. Establezca actual (y HEAD) para apuntar a esta nueva confirmación, y actualice los archivos de trabajo para el proyecto en consecuencia.
- Si hubo un conflicto, inserte los marcadores de conflicto apropiados e informe al usuario. No se ha creado commit .
use rebase not merge. –
[http://stackoverflow.com/questions/457927/git-workflow-and-rebase-vs-merge-questions](http://stackoverflow.com/questions/457927/git-workflow-and-rebase-vs -merge-questions): esto es lo que debe ver en –
Rebase y merge ofrecen diferentes flujos de trabajo. Usar ciegamente rebase en lugar de fusionar para "resolver" este "problema" no es el enfoque correcto. –