Quelle est la différence entre git am et git s’appliquent?

git am et git apply peuvent être utilisés pour appliquer des patchs. Je ne vois pas la différence. Je vois une différence maintenant: git am commet automatiquement alors que git apply ne touche que les fichiers mais ne crée pas de commit. Est-ce la seule différence?

Les entrées et les sorties sont différentes:

  • git apply prend un patch (par exemple la sortie de git diff ) et l’applique au répertoire de travail (ou index, si --index ou --cached est utilisé).
  • git am prend une boîte aux lettres de commits formatée sous forme de messages électroniques (par exemple, la sortie du git format-patch ) et les applique à la twig en cours.

git am utilise git apply en coulisse , mais fait plus de travail avant (lire un Maildir ou une mbox , et parsingr des messages électroniques) et après (créer des commits).

git apply est pour appliquer des diffs droits (par exemple à partir de git diff ) alors que git am est pour appliquer des patches et des séquences de patchs à partir d’e-mails, au format mbox ou Maildir. git am essaie d’extraire les messages de validation et les détails de l’auteur des messages électroniques, raison pour laquelle il peut effectuer des commits.

Avec git am vous appliquez le patch donc si vous utilisez git status vous ne verrez aucun changement local.

git apply vous permet d’apporter les modifications dans les fichiers sources car si vous écriviez vous-même le code, le git status git diff et git diff permettraient d’afficher les modifications apscopes dans le patch que vous avez appliqué. les ensemble comme un nouveau patch.