2011-10-25 5 views
25

J'ai un fichier appelé test_module.c qui a quelques différences que je veux appliquer à ma copie de travail locale.format-patch pour un seul fichier

J'ai essayé de créer un fichier patch à partir de la télécommande en procédant comme suit. Cependant, git ne s'est pas plaint d'erreurs. Et n'a pas créé de fichier patch non plus.

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

Il est possible de créer un patch d'un seul fichier que je peux appliquer?

(En utilisant la version git 1.7.5.4)

Répondre

30

Si vous donnez git format-patch une seule révision, il produira des correctifs pour chaque validation depuis cette révision. Si vous ne voyez aucune sortie de cette commande, alors je suppose qu'il n'y a pas eu de changements dans ce fichier entre origin/master et votre HEAD actuel. Vous pouvez également fournir une plage de révision (par exemple origin/master~3..origin/master) qui couvre les modifications apportées à ce fichier. Ou, si les changements que vous souhaitez produire un patch pour tout juste contenu dans le seul engagement à la pointe de origin/master, vous pouvez utiliser le paramètre -1, comme dans:

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

J'ai utilisé ce qui suit avec le hachage étant le dernier commit. git format-patch [hash] origine/test maître/test_module.c Cependant, j'ai eu ces erreurs. Qu'est-ce qui causerait normalement cela? erreur: échec du correctif: test/test_module.c: 176 erreur: test/test_module.c: correction non applicable Remerciements. – ant2009

+0

Je pense que vous voudrez peut-être 'git format-patch [hash] .. origin/master test_module.c' à la place, ou' origin/master' peut être considéré comme un chemin. –

+1

Une idée où cela est documenté? La page de manuel officielle ne semble pas indiquer un fichier (bien que cela fonctionne): https://git-scm.com/docs/git-format-patch. –

11

Vous pouvez utiliser la syntaxe suivante pour créer patch pour seul fichier:

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

cela fonctionne réellement! le sha1 montré est incorrect, mais il m'a fourni le patch correct que je voulais. – cnst

Questions connexes