Quelle est la différence entre "git format-patch et "git diff'?
Je ne vois pas la différence entre la sortie de 'git format-patch" et "git diff', est-il? Et ne vais-je pas être en mesure d'utiliser git diff' pour produire un patch et ensuite l'appliquer à l'aide de git appliquer?
Mon problème est que j'ai changements ajoutés à l'index, mais apparemment git format-patch accepte uniquement s'engage, si je peux utiliser la sortie de diff, alors je peux utiliser cette commande pour produire un patch pour que les modifications dans l'index:
git diff --cached > index.patch
Vous devez vous connecter pour publier un commentaire.
Un patch créé avec
git format-patch
sera également inclure des méta-informations sur la livraison (à valider, la date, le message de validation, ...) et contient des diff de données binaires. Tout sera mis en forme comme un courrier, de sorte qu'il peut être facilement envoyé. La personne qui reçoivent il peut recréer la validation correspondante avecgit am
et toutes les méta-données seront intactes. Il peut également être appliqué avecgit apply
que c'est un super-ensemble d'un simple diff.Un patch emballé avec
git diff
sera un simple diff avec le contexte (pensezdiff -u
). Il peut également être appliqué avecgit apply
mais les méta-données ne seront pas recréés (ils ne sont pas présents).En résumé,
git format-patch
est utile pour transmettre un commit, alors quegit diff
est utile pour obtenir une diff entre les deux arbres.Des manuels git format-patch prépare les correctifs appropriés pour la soumission par courriel, tandis que git-diff montre les changements.
Ils sont deux choses différentes et ont des objectifs différents, ils ont juste arriver à la sortie d'un patch format. Mais
git-format-patch
ajoute des données au sujet d'un commit (date, auteur, message de commit) et regroupe dans un format adapté à l'envoi de Unix message (même si ce sont juste des fichiers, de sorte qu'ils peuvent être envoyés à d'autres méthodes et toujours appliquée par git-am).Aussi
git-format-patch
génère un fichier de correctif pour chacun de s'engager dans la fourchette que vous spécifiez. Ces changements seront ajoutés à mesure que s'engage à votre référentiel avecgit-am
.git-diff
montre juste la diff entre les deux états que vous demandez, et peut être utilisé pour créer un fichier de correctif. Mais ce n'est qu'un simple fichier de correctif et l'application du correctif va simplement changer l'état du répertoire de travail.Et oui, vous pouvez créer un patch pour l'index de cette façon.