2011-10-25 12 views
25

Tengo un archivo llamado test_module.c que tiene algunas diferencias que quiero aplicar a mi copia local de trabajo.parche de formato para un solo archivo

Intenté crear un archivo de parche desde el control remoto haciendo lo siguiente. Sin embargo, git no se quejó de ningún error. Y tampoco creó ningún archivo de parche.

git format-patch master/dev_branch test/test_module.c 

¿Es posible crear un parche de un solo archivo, que pueda aplicar?

(Usando Git versión 1.7.5.4)

Respuesta

30

Si das git format-patch una única revisión, se producirá parches para cada confirmación desde esa revisión. Si no ve salida de ese comando, entonces sospecho que no hubo cambios en ese archivo entre origin/master y su actual HEAD. Como alternativa, puede proporcionar un rango de revisión (por ejemplo, origin/master~3..origin/master) que cubre los cambios introducidos en ese archivo. O bien, si los cambios que quieren producir un parche para apenas están contenidos en la única confirmación en la punta de origin/master, puede utilizar el parámetro -1, como en:

git format-patch -1 origin/master test/test_module.c 
+0

Utilicé lo siguiente con el hash como último compromiso. git formato-parche [hash] origen/prueba maestra/test_module.c Sin embargo, obtuve estos errores. ¿Qué normalmente causaría esto? error: parche fallido: test/test_module.c: 176 error: test/test_module.c: el parche no se aplica Gracias. – ant2009

+0

Creo que es posible que desee 'git format-patch [hash] .. origin/master test_module.c' en su lugar, o' origin/master' se puede considerar como una ruta. –

+1

¿Alguna idea de dónde está documentado esto? La página man oficial no parece decir nada acerca de especificar un archivo (aunque sí funciona): https://git-scm.com/docs/git-format-patch. –

11

Puede utilizar siguiente sintaxis para crear parche para solo archivo:

git format-patch [commit_hash] [file] 
+0

que realmente funciona! el sha1 mostrado es incorrecto, pero me consiguió el parche correcto que quería. – cnst

Cuestiones relacionadas