Le ci-dessous a fonctionné pour moi.
Source: How to create and apply a patch with Git
Tout d'abord, jetez un oeil à ce que les changements sont dans le patch. Vous pouvez le faire facilement avec git appliquer
git apply --stat fix_empty_poster.patch
Notez que cette commande NE appliquer le patch, mais seulement vous montre les statistiques sur ce qu'il va faire. Après avoir jeté un coup d'œil dans le fichier patch avec votre éditeur favori, vous pouvez voir les changements réels.
Ensuite, vous vous intéresserez à la difficulté du patch. Git vous permet de tester le correctif avant de l'appliquer.
git apply --check fix_empty_poster.patch
Si vous ne recevez pas d'erreurs, le patch peut être appliqué proprement. Sinon, vous pourriez voir quels problèmes vous rencontrerez. Pour appliquer le patch, je vais utiliser git am au lieu de git apply. La raison en est que git am vous permet de signer un patch appliqué. Cela peut être utile pour référence ultérieure.
git am --signoff < fix_empty_poster.patch
Applying: Added specs to test empty poster URL behaviour
Applying: Added poster URL as part of cli output
Ok, les correctifs ont été appliqués proprement et votre branche principale a été mise à jour. Bien sûr, réexécutez vos tests pour vous assurer que rien ne s'est cassé.
Dans votre journal git, vous trouverez que les messages de validation contiennent une balise "Sign-off-by". Cette balise sera lue par Github et d'autres pour fournir des informations utiles sur la façon dont le commit s'est retrouvé dans le code.
ça ne marchait pas très bien! –
Désolé, c'était une situation vraiment spécifique. Je vous suggère de poster une question si vous rencontrez des problèmes :( – drozzy
En général, git-svn est un meilleur moyen d'importer (et d'exporter) svn commits dans des dépôts git.Il gardera le message de commit et les informations d'auteur, et fera face à beaucoup cas de bord qui vont casser la réponse donnée ici (Bien sûr, ce script peut être plus approprié pour votre situation s'il y a des contraintes externes dont vous n'avez pas discuté ici) – Rich