Tous les deux git am
et git apply
peut être utilisé pour appliquer des correctifs. Je ne vois pas la différence. Je vois une différence maintenant: git am
valide automatiquement alors que git apply
ne touche que les fichiers mais ne crée pas de commit. Est-ce la seule différence?
L'entrée et la sortie sont différentes:
git apply
prend un patch (par exemple, la sortie de git diff
) et l’applique au répertoire de travail (ou à l’index, si --index
ou --cached
est utilisé).git am
prend une boîte aux lettres d’envois formatée sous forme de messages électroniques (par exemple, le résultat de git format-patch
) et les applique à la branche actuelle.git am
les usages git apply
dans les coulisses , mais fait plus de travail avant (lire un Maildir
ou mbox
et analyser les messages électroniques) et après (créer des commits).
git apply
est destiné à l’application de différences droites (par exemple de git diff
) tandis que git am
sert à appliquer des correctifs et des séquences de correctifs à partir de courriels, en format mbox ou Maildir, et constitue le "contraire" de git format-patch
. git am
tente d'extraire les messages de validation et les détails de l'auteur des e-mails, raison pour laquelle il peut effectuer des validations.
Avec git am
vous appliquez le correctif, donc si vous utilisez git status
vous ne verrez aucun changement local.
git apply
vous permet d’effectuer les modifications dans les fichiers source comme si vous écriviez le code vous-même, par conséquent git status
et git diff
affichera les modifications apportées au correctif que vous avez appliqué. Vous pourrez ensuite corriger/ajouter d'autres modifications et les soumettre en un seul.