Estoy colaborando trabajando en un proyecto con alguien, así que decidimos usar git. Desafortunadamente, con frecuencia código en lugares sin Internet, por lo que terminamos con algo como esto:¿Por qué Git creó un commit de fusión sin cambios en el archivo?
origin/master: A---B---C
\
mylocalmaster: D---E---F
\
hismaster: G---H---I
Ahora, decir que empuja sus compromete y pone esto:
origin/master: A---B---C---G---H---I
\
master (local): D---E---F
Todo lo que quiero hacer es empujar mis compromete a conseguir esto en tanto mi repo local y la línea uno:
A---B---C---D---E---F---G---H---I
parece que funciona cuando lo haga git push
, pero el problema surge cuando lo haga git fetch
y luego git merge
. Todo lo que intento hacer es obtener sus commits en mi repositorio local, pero termino con un commit de fusión diciendo algo como Merge remote-tracking branch 'origin/master'
como su mensaje.
No quiero tener esta confirmación inútil, ya que no hay código conflictivo en en nuestras confirmaciones. Estamos trabajando en archivos completamente diferentes, por lo que no hay ninguna razón para tener este compromiso. ¿Cómo puedo evitar que git cree este commit de fusión?
Cuando haces un git push en esa situación, deberías estar recibiendo un error. No debería funcionar bien. – bames53
Desde que llegué a esta página tratando de aprender cómo * forzar * git para crear una confirmación de fusión sin ningún cambio de archivo, mencionaré aquí que la respuesta a eso es el comando 'git commit-tree'. Ver 'man git-commit-tree'. – Wildcard
@Wildcard Por curiosidad, ¿en qué situación le gustaría crear una combinación de fusión que 'git merge --no-ff' no resolvería? –