web-dev-qa-db-fra.com

Créer un patch incluant des fichiers spécifiques dans git

Disons que j'ai 7 commits d'avance sur le repo Origin/Master. Je voudrais créer un patch qui inclut dans le patch des fichiers spécifiques qui ont été modifiés, pas tous les fichiers. Ou l'équivalent exclut des fichiers spécifiques du patch qui ont été modifiés. Comment puis-je y parvenir?

44
vasilakisfil

Vous pouvez restreindre la sortie de git diff en listant les chemins à la fin de la commande (après un -- pour éviter tout conflit potentiel entre les noms de chemin et les noms de branche). Par exemple, vous pouvez effectuer les opérations suivantes:

git diff Origin/master HEAD -- app/models/region.rb doc/ > changes.patch

... pour générer un patch qui ne montre que les différences dans un fichier particulier et un répertoire particulier.

59
Mark Longair

Vous pouvez inclure des fichiers dans les correctifs avec:

git format-patch <rev> <files...>

Exemple

git format-patch HEAD^^^ Makefile

Vous donnera trois fichiers 0001- [commit] ... 0003- [commit] contenant uniquement le Makefile.

34
lars