Dans git, je cache mes modifications. Est-il possible que je puisse créer un patch avec ce que je cache? Et puis appliquer ce correctif dans un autre référentiel (celui de mon collègue)?
Je sais git format-patch -1
, mais je pense que c'est pour ce que j'ai commis. Mais je recherche la même chose pour les changements que j'ai cachés.
Et comment puis-je appliquer un correctif dans un autre référentiel?
man patch
et je n'ai vu aucune option pour l'application de patch interactif. Cependant, étant donné que les fichiers de correctifs sont eux-mêmes des fichiers de texte brut, on édite généralement le correctif dans un éditeur de texte pour découper les parties pertinentes à appliquerpatch
. Alternativement, si vous appliquez le correctif dans un autre référentiel Git, vous pouvez tout appliquer, puis sélectivement lesgit checkout
fichiers que vous ne souhaitez pas modifier (git checkout
avec un nom de fichier annule les modifications non organisées).git add --interactive ${YOUR_FILES}
et cela vous donnera la possibilité de vous engager partiellement.git stash show -p stash@{1} > patch.txt
Cette réponse fournit des informations sur l'enregistrement du correctif et sur son application là où vous souhaitez l'utiliser.
Pour cacher la sortie dans un fichier:
Vérifiez que le correctif semble bon:
Ne vérifiez aucune erreur:
Appliquer le patch
la source
git apply --check --ignore-space-change --ignore-whitespace my-patch-name.patch
Appliquez le correctif:git apply --ignore-space-change --ignore-whitespace my-patch-name.patch
git apply
n'ai pas pris le diff.Utilisation
pour obtenir une liste de vos éléments récemment cachés. Git crée en fait des objets de validation lorsque vous stockez.
Ce sont des commits comme tout le reste. Vous pouvez les découvrir dans une agence:
Vous pouvez ensuite publier cette branche et votre collègue peut fusionner ou sélectionner ce commit.
la source
Les solutions ci-dessus ne fonctionneront pas pour les données binaires. Les éléments suivants en ajoutent le support:
Éditer
Remarque: je voulais juste ajouter un commentaire aux réponses ci-dessus mais ma réputation n'est pas suffisante.
la source
Je pense que cela pourrait être l'une des mises à jour de Git récemment. vous n'avez plus à patcher les modifications que vous avez cachées. vous pouvez simplement appliquer vos modifications cachées d'une branche à une autre.
dites sur la branche A que vous avez caché certaines modifications, appelées stash @ {1}.
vous passez maintenant à la branche B. vous pouvez simplement faire:
ceci applique vos modifications de branche A à la branche B.
la source