Skip to main content

Parfois, nous découvrons soudainement que certains endroits doivent être modifiés et que les fichiers les plus courants ne doivent pas être envoyés envoyés. Nous espérons qu'il apparaît non seulement dans la prochaine version, qui espère supprimer tout le mot git. À ce stade, nous devons modifier l'historique avant Git. Que dois-je faire ce temps?

Ne vous inquiétez pas, il existe de nombreux véhicules dans GIT pour modifier les enregistrements historiques précédents.


Premièrement, la soumission finale

Ceci est mentionné dans l'article précédent, si nous voulons seulement modifier le dernier enregistrement de soumission, puis relativement simple. Nous n'avons besoin que de modifier la section directement que nous souhaitons modifier, plus un paramètre -AMend lors de l'envoi.

git commit --amend Les modifications désignent le patch

Il peut fusionner nos modifications à l'historique précédent sans créer un nouvel engagement. Après avoir exécuté, il ouvrira un éditeur VIM et nous pouvons également modifier les informations rapidement nMagasin quand engagé.


Nous utilisons la vérification du journal GIT, il constatera que l'historique de l'histoire est toujours la dernière fois. On dirait que je n'avais rien eu rien, et j'ai changé tranquillement.


Deuxièmement, modifier plus d'informations


- Modifications faciles à utiliser, il ne peut que modifier les informations finales, si nous devons faire quelque chose avant le profil que vous souhaitez modifier? Il n'y a pas d'outil direct pour y parvenir, mais nous pouvons utiliser

Rebase

à atteindre. Nous pouvons ajouter -i à modifier l'interaction, nous pouvons vous arrêter après toutes les modifications souhaitées ou vous pouvez ajouter des fichiers ou faire quelque chose d'autre que vous voulez faire. Cependant, notre objectif n'est pas une certaine succursale qui est un bouton d'historique de la branche actuelle, nous devons donc fournir une position d'engagement spécifique ou un pointeur
.
Git Rebase -i a une caractéristique très puissante et nous pouvons l'utiliser pour faire tout ce que nous sommesvouloir faire. Par exemple, nous voulons modifier la dernière seconde soumission, nous pouvons faire git Rebase -i Head ~ 3. Il s'agit de créer une installation variable comme un bouton de référence, à ce stade, GIT entrera dans une fenêtre VIM. Dans cette fenêtre, nous pouvons voir les trois processus les plus proches.

Nous pouvons d'abord voir que trois lignes que nous pouvons modifier, afficher les opérations exécutées et commis et commettent des notifications. Les activités ici sont sélectionnées, utilisent également des engagements. À propos des activités que nous pouvons faire offrira une pointe élevée ci-dessous, y compris Sélection, édition et courge

.

Cette fois, nous voulons faire cela modifie des enregistrements envoyés, nous devons donc exécuter l'édition, nous modifions la sélection avant de vous engager à modifier pour modifier la solution. Par exemple:

Après la sortie, GIT nous apportera automatiquement
dans la version après avoir soumis la branche de la modification

Nous avons fait l'amendement que nous voulons, resterY J'ai ajouté une ligne dans le 15ème article: essayez Rebase. Utilisez ensuite l'engagement de Git Ajouter et Git - Grand pour modifier les résultats d'envoi.


Après avoir effectué Git Rebase -Continuer, remplissez les modifications restantes pour l'application.

Après que tout se termine, nous pouvons utiliser la commande GIT SHOW pour vérifier les journaux Key9ce3 que nous avons modifiés. On peut constater qu'il y a eu beaucoup de lignes, montrant que nos changements ont réussi.


Mardi, séquentielle, consolidée, séparée 1, modification séquentielle


Nous pouvons non seulement modifier la chaîne en contenu, vous pouvez également modifier vos proches de ces engagements et leur permettre de fusionner et de diviser.
L'ordre modifié est vraiment simple, il suffit de modifier manuellement le fichier VIM rempli après REBASE -I. Exemple: l'enregistrement d'origine est:

Si nous voulons remplacer la commande, nous devons simplement modifier le fichier.ce. Par exemple: il devient:

Lorsque nous quittons VIM, Git d'abord appliquera les modifications B PRÉCT, puis appliquer la demande finale C

2,

combinée
, nous pouvons également fusionner de multiples engagements pour enregistrer un enregistrement. La méthode de fonctionnement est également très simple, c'est-à-dire que nous n'avons besoin que de modifier la sélection à la courge. G. Il fusionnera automatiquement toutes les registres d'engagement de Squash.

3, divisé
Lorsqu'un grand engagement, nous pouvons également vouloir la diviser, vraiment très simple. Par exemple, nous voulons scinder l'engagement B à deux. Premièrement, nous avons modifié la sélection devant le COMTT B de modifier lors de la Rebase.

Lorsque nous sortions, nous entrerons dans l'état que B s'est engagé à simplement envoyer. Parce que nous devons faire cela pour soumettre B, nous devons faire la réinitialisation de la tête GIT ^ et réinitialiser la dernière fois. Ajoutez ensuite le document que nous souhaitons envoyer au fichier.

L'opération entière est la suivante:

pick A change Apick B change Bpick C change CCela, nous avons divisé l'engagement b en deux engagements à mettre en histoire.Enfin, les gens doivent faire attention, bien que ces moyens soient faciles à utiliser lors de la modification du fichier.Mais si ces engagements ont été envoyés à la distance, nous ne pouvons pas synchroniser directement Git.Parce que Git vérifiera la valeur de hachage que nous envoyons, nous verrons que nous interdirons notre soumission.Donc, si vous souhaitez envoyer à une télécommande, vous ne pouvez utiliser que Git Push -f pour forcer le remplacement.Mais
Il s'agit d'une activité très dangereuse si vous gitez Push -f, personne ne saura que ce que vous avez modifié, vous suggérez seulement que vous ayez une succursale unique, vous devez donc vous avoir à prudence.Utiliser. pick B change Bpick A change Apick C change C

Sujets

Catégories