2010-12-16 4 views
27

Un de mes collègues a bifurqué mon projet et nous voulons intégrer son changement sur un seul fichier dans mon repo, en gardant son historique (principalement les logs de commit). Le problème est qu'il est maladroit dans ses commits donc les commits contiennent des différences par rapport à d'autres fichiers, sans rapport avec le projet (ou ce qui doit être tiré dans le repo original). Je voudrais pouvoir faire un "git format-patch" pour extraire l'histoire, mais seulement pour un seul fichier (ou peut-être deux, les fichiers .cpp et .hpp). Je ne pouvais pas trouver une option pour "mise en forme" pour cela."git format-patch" équivalent pour un seul fichier?

Est-ce possible?

Merci!

Répondre

36

Hum ... Donc en fait, il est aussi simple que:

git format-patch commit_id file(s) 

où commit_id est le parent du premier commettras pour créer un patch suivi par le ou les fichiers ...

voulu
+4

ajouter simplement a '-' si certains des fichiers que vous voulez suivre n'existent pas localement dans le maître: 'git format-patch --output-directory monPatch commit-id-début.commit-id-end - fichier1 fichier2 fichier3 ' – Autiwa

+1

Cela ne fonctionnait pas pour moi jusqu'à ce que j'ai vu cela - http://stackoverflow.com/a/7885229/1603711 - J'avais besoin d'utiliser' git format-patch -1 commit_id - fichier (s) ' –